Я пытаюсь разработать веб-сервер, который будет использоваться для игры в кости и отправки сообщений для нашей группы подземелий и драконов. Я могу хорошо создавать и удалять таблицы, и я считаю, что моя функция просмотра работает. Однако он говорит, что в его результате возвращается 0 строк. Поэтому я считаю, что есть проблема с моим SQL-запросом вставки данных.
Вставить данные php страницы:
<?php
$dbhost = 'localhost:3036';
$dbuser = 'root';
$dbpass = 'anthony';
$conn = mysql_connect($dbhost, $dbuser, $dbpass);
// Check connection
if ($conn->connect_error) {
die("Connection failed: " . $conn->connect_error);
}
mysql_select_db( 'messages' );$number = 0;
echo "Name: {$_POST['name']}<br />";
echo "Subject: {$_POST['subject']}<br />";
echo "Message: {$_POST['message']}<br /><br />";
if(strcmp($_POST['die'],"D100") == 0 ){
$number = (mt_rand ( 1 , 100 )* + $_POST['amount'] ) + $_POST['modifier'];
echo $number;
}
if(strcmp($_POST['die'],"D20") == 0 ){
$number = (mt_rand ( 1 , 20 )* + $_POST['amount'] ) + $_POST['modifier'];
echo $number;
}
if(strcmp($_POST['die'],"D12") == 0 ){
$number = (mt_rand ( 1 , 12 )* + $_POST['amount'] ) + $_POST['modifier'];
echo $number;
}
if(strcmp($_POST['die'],"D10") == 0 ){
$number = (mt_rand ( 1 , 10 )* + $_POST['amount'] ) + $_POST['modifier'];
echo $number;
}
if(strcmp($_POST['die'],"D8") == 0 ){
$number = (mt_rand ( 1 , 8 )* + $_POST['amount'] ) + $_POST['modifier'];
echo $number;
}
if(strcmp($_POST['die'],"D6") == 0 ){
$number = (mt_rand ( 1 , 6 )* + $_POST['amount'] ) + $_POST['modifier'];
echo $number;
}
if(strcmp($_POST['die'],"D3") == 0 ){
$number = (mt_rand ( 1 , 3 )* + $_POST['amount'] ) + $_POST['modifier'];
echo $number;
}$sql = "INSERT INTO message_tbl (message_name, message_subject, message_txt, message_amount, message_die, message_modifier, message_roll)
VALUES ('".$_POST['name']."', '".$_POST['subject']."', '".$_POST['message']."', '".$_POST['amount']."', '".$_POST['die']."', '".$_POST['modifier']."', '".$number."')";
if ($conn->query($sql) === TRUE) {
echo "New record created successfully";
} else {
echo "Error: " . $sql . "<br>" . $conn->error;
}$conn->close();?>
Это показывает мой бросок и всю информацию из предыдущей формы, однако это не делает ничего из этого:
if ($conn->query($sql) == TRUE) {
echo "New record created successfully";
} else {
echo "Error: " . $sql . "<br>" . $conn->error;
}
Моя страница просмотра данных PHP:
<?php
$dbhost = 'localhost:3036';
$dbuser = 'root';
$dbpass = 'anthony';
$conn = mysql_connect($dbhost, $dbuser, $dbpass);
// Check connection
if ($conn->connect_error) {
die("Connection failed: " . $conn->connect_error);
}
mysql_select_db( 'messages' );$query = "SELECT * FROM message_tbl";
$result = mysql_query($query);
printf("Select returned %d rows.\n", $result->num_rows); //prints how many rows returned
echo "<table>";
while($row = mysql_fetch_array($result)){ //Creates a loop to loop through results
echo "id: " . $row["message_id"]. " " . $row["message_name"]. " " . $row["message_subject"]. " " . $row["message_txt"]. " " . $row["message_amount"]. " " . $row["message_die"]. " " . $row["message_modifier"]. " " . $row["message_roll"]. "<br>";
}
echo "</table>"; //Close the table in HTML
mysql_close(); //Make sure to close out the database connection
?>
Моя страница данных просмотра возвращается с «выбрать вернул 0 строк» и ничего больше.
Извините, я не эксперт в php, я только начал разрабатывать для Интернета и учусь на ходу. Но, насколько я могу судить, mysql устарела, и рекомендуется использовать MySQLi. Возможно, это не так, но я заметил, что вы используете в своем коде ОО и процедурный стиль, я когда-либо придерживался только одного метода в любом коде, который я написал. Вероятно, не тот ответ, который вам нужен, но я не могу оставить комментарий.
Также, что касается php, я бы рекомендовал использовать php.net как лучший ресурс, чем w3schools.
Других решений пока нет …