2016-03-07 3 views
0

Я довольно новичок в переполнении стека. Я создаю сайт, вы вводите текст в 2 текстовых поля и отправляет его в базу данных. Мне нужно это, чтобы сообщить мне, что идентификатор этого был сохранен в качестве сеанса, а затем загрузить его в другую базу данных. звучит запутанно. но я застрял в одной части. его просмотр результата от этого пользователя. я попробовал просто показать последний идентификатор последней загруженной, но может быть очень ненадежным, если несколько человек пытаются загрузить данные и знают точную сессию. У меня также возникают проблемы с привязкой сеанса с идентификатором. ниже приведен код для сохранения форума в базе данных. Я довольно уверен в отправке идентификатора этих пользователей, внесенных в другую базу данных. Я просто застрял на поиске, что пользователи занесены тексты и идентификатор создания сеанса проведение идентификационного номерапоказать идентификатор введенного текста в базу данных

<?php 
 
header("Location:myscorenum.php"); 
 
$servername = "localhost"; 
 
$username = "root"; 
 
$password = "root"; 
 
$dbname = "score"; 
 

 
// Create connection 
 
$conn = new mysqli($servername, $username, $password, $dbname); 
 
// Check connection 
 
if ($conn->connect_error) { 
 
    die("Connection failed: " . $conn->connect_error); 
 
} 
 
session_start(); 
 

 
if (isset($_SESSION['username'])){ 
 
$username = $_SESSION['username']; 
 
echo "working"; 
 
}else{ 
 
//3.2 When the user visits the page first time, simple login form will be displayed. 
 
} 
 

 
$value = $_POST['name']; 
 
$value1 = $_POST['description']; 
 

 

 

 
$sql = "INSERT INTO all_scores (name, description) VALUES ('$value','$value1')"; 
 

 

 

 
if ($conn->query($sql) === TRUE) { 
 
    echo "<a href=https://twitter.com/angela_bradley>My Twitter</a>"; 
 
} else { 
 
    echo "Error: " . $sql . "<br>" . $conn->error; 
 
} 
 

 
$conn->close(); 
 
?>

плохо иметь обработку вставку в другую базу данных в другом файле. Я уверен, что вы загрузите определенный сеанс.

любые вопросы, не стесняйтесь сообщать мне. спасибо за вашу любезную помощь.

+0

Вы решили использовать функцию session_id – bhrached

+0

Вы пробовали использовать $ conn-> insert_id Я думаю, что он даст вам идентификатор последней вставленной записи, которую вы делаете, хотя другие вставили одновременно, это не повлияет на ваш результат. – Indrajit

ответ

0

Вы можете использовать это:

MySQLi :: $ insert_id - mysqli_insert_id - Возвращает автогенерируемая идентификатор, используемый в последнем запросе

, как: echo $conn->insert_id;

Поскольку вы звоните он на $conn, который является экземпляром mysqli, который уже имеет соединение, он вернет ваш последний вставленный идентификатор, независимо от других ac tvities на db (другие запросы не влияют на правильность вывода)

+0

ok , спасибо, но я все еще немного смущен –

+0

О чем? Может быть, я могу вас не путать;) –

+0

Я не понимаю, что я поставил echo $ conn-> etc под my if ($ conn-> query ($ sql). Ничего не видно, как бы я сделал сеанс из этого поэтому я могу просмотреть его на другой странице, потому что, когда я беру заголовок, на странице ничего не появляется. –

0

Я отредактировал свой ответ. Это заключительная часть вашего кода, и я просто добавил к ней одну строку кода. Посмотрите, если это то, что вы ищете. Если это не работает, убедитесь, что поле идентификатора базы данных является AI.

if ($conn->query($sql) === TRUE) { 
    $id=$conn->insert_id; //this is where you get the last inserted id. 
     echo "<a href=https://twitter.com/angela_bradley>My Twitter</a>"; 
    } else { 
     echo "Error: " . $sql . "<br>" . $conn->error; 
    } 

    $conn->close(); 
    ?> 
+0

OP использует 'объект ориентированный «стиль» не «процедурный» –

+0

Прохладный!Вместо этого используйте $ conn-> insert_id; ; ->). – DevMan

+0

спасибо. но я до сих пор не понимаю :( –

0

Чтобы использовать сессию и установить -> insert_id переменной сеанса и использовать его в любой другой странице, вы можете сделать это:

if ($conn->query($sql) === TRUE) { 
session_start(); 
$_SESSION['id']=$conn->insert_id; 

     echo "<a href=https://twitter.com/angela_bradley>My Twitter</a>"; 
    } else { 
     echo "Error: " . $sql . "<br>" . $conn->error; 
    } 

    $conn->close(); 
    ?> 

и теперь в любой другой странице сделать это получить переменную сеанса:

session_start(); 
$id=$_SESSION['id']; 

Здесь вы идете, и вы получаете идентификатор. Вы все еще смущены?