У меня есть HTML-страница с кодом PHP, которая вставляет данные в базу данных MySQL. Данные сохраняются в БД без каких-либо ошибок, но в неправильном порядке.Записи не получают в порядке возрастания
Это структура:
Это база данных:
Это выход:
Это код PHP:
<?php
$conn = mysql_connect("localhost","root","");
if(! $conn)
{
die('Could not connect: ' . mysql_error());
}
$sql = 'SELECT num,question,choice1,choice2,choice3,choice4, answer FROM data order by num';
mysql_select_db('test');
$retval = mysql_query($sql, $conn);
if(! $retval)
{
die('Could not get data: ' . mysql_error());
}
while($row = mysql_fetch_assoc($retval))
{
echo '<tr>';
echo '<td> '.$row['num'].'.'.$row['question'].' <br/ >A.'.$row['choice1'].'<br />B.'.$row['choice2'].'<br />C.'.$row['choice3'].'<br />D.'.$row['choice4'].'<br />Answer.'.$row['answer'].'</td>';
echo "<td text-align='center'><form action='proto2.php' method='post'>
<input type='hidden' name='update' value=".$row['num']." />
<input type='submit' value='Change' />
</td></form> ";
echo "<br/>";
echo '</tr>';
}
mysql_close($conn);
?>
Выборка непоследовательна, он всегда начинается с номера 11. Я просто не знаю, почему номер 11 и 2 места переключения, любая помощь? Кроме того, моя база данных странно, потому что после того, как 1 2 3 числа 20 появляются затем 4 5 6.
И я даже попробовать этот код, но все-таки я получил тот же результат, даже проверить по количеству или строк
$conn = mysql_connect("localhost","root","");
if(! $conn)
{
die('Could not connect: ' . mysql_error());
}
$sql = 'SELECT * FROM data ORDER BY num ASC';
mysql_select_db('test');
$retval = mysql_query($sql);
$cntr = mysql_num_rows($retval);
mysql_close();
$conn = mysql_connect("localhost","root","");
if(! $conn)
{
die('Could not connect: ' . mysql_error());
}
for($i = 1;$i<=$cntr+1;$i++)
{
$result = mysql_query("SELECT num,question,choice1,choice2,choice3,choice4,answer FROM data WHERE num='".$i."'");
while($row = mysql_fetch_assoc($result))
{
echo '<tr>';
echo '<td> '.$row['num'].'.'.$row['question'].' <br/ >A.'.$row['choice1'].'<br />B.'.$row['choice2'].'<br />C.'.$row['choice3'].'<br />D.'.$row['choice4'].'<br />Answer.'.$row['answer'].'</td>';
echo "<td text-align='center'><form action='proto2.php' method='post'>
<input type='hidden' name='update' value=".$row['num']." />
<input type='submit' value='Change' />
</td></form> ";
echo "<br/>";
echo '</tr>';
}
}
Запустили ли вы свой SQL-запрос в phpmyadmin? Каков был порядок результата? – tgun926
это заказ от 1 2 3 20 19 4 5 6 Я не знаю, как это произойдет – Willingtolearn
Распечатайте таблицу и опубликуйте ее как отредактируйте на свой вопрос - это может помочь дать вам ответ – tgun926