Ле решение
Я приехал сюда с помощью Брайана и W3Schools
Это мусор, он не работает … Я не могу вывести цикл в определенное место, аааа
$rows2 = array();
while($stmt->fetch()){
echo $date.'<br>'.$stratoparse.'<br>'.'<br>';
$rows2[] = $stratoparse;
$rows3[] = $date;
}
for($i=0;$i<=$num_rows;$i++){
echo $rows3[$i].' '.$rows2[$i].'<br>'.'<br>';
}
выходы
01-05-2015
образец 3
01-05-2015
образец 2
01-05-2015
образец
01-05-2015 образец 3
01-05-2015 образец 2
01-05-2015 образец
Начальный пост
Поэтому я пытаюсь сохранить результат запроса цикла while. В отдельном файле .php цикл while выводит данные в порядке. Но когда я пытаюсь сохранить его, например. начать цикл по POST, например. при отправке в поиске цикл while не выполняется должным образом, как в автономном скрипте. Я предоставлю обе части кода.
Я пытаюсь подсчитать количество столбцов, которые удовлетворяют инструкции SELECT, зная, что я буду использовать диапазон (1, это число) для хранения вывода while … если есть более простой и прямой подход, это будь великолепен.
Это автономный код, а не полный выбор. Это работает, строки выводятся в порядке убывания.
То, что кажется орфографическими ошибками, не является орфографическими ошибками, информация о доступе к серверу имеет имя пользователя с одной рукой, поэтому я различил, используя две буквы.
<?php
$stmt=$link->prepare('SELECT stratoparse,date FROM stock WHERE user=? AND keyphrase=? ORDER BY ID DESC');
$stmt->bind_param('ss',$userrname,$keyphrase);
$stmt->execute();
$stratoparse=null;
$date=null;
$stmt->bind_result($stratoparse,$date);
while($stmt->fetch()){
echo $date.'<br>'.$stratoparse.'<br>'.'<br>';
}
?>
Это код, который я пытаюсь использовать, на самом деле мне не нужно публиковать вторую часть. Приведенный выше код будет вызван событием POST, а затем выходные данные будут сохранены и отражены в HTML
Я пытаюсь применить это решение, найденное в stackoverflow, а также
$store_array = range( 1, 5);
$i = 1;
$store_array = array();
while( $i <= 5)
{
$store_array[] = $i;
$i++;
}
ОБНОВИТЬ
Это вывод, когда я запускаю тестовый файл .php
01-05-2015
образец 3
01-05-2015
образец 2
01-05-2015
образец
010
Вы можете видеть, что два отображаемых num_rows равны 0, а 1 между ними — bool (true), я думаю, когда я повторяю $ stmt-> execute ();
Это код минус логин
$link = new mysqli("$servername", "$username", "$password", "$dbname");
$link2 = new mysqli("$servername", "$username", "$password", "$dbname");
$stmt=$link->prepare('SELECT stratoparse,date FROM stock WHERE user=? AND keyphrase=? ORDER BY ID DESC');
$stmt->bind_param('ss',$userrname,$keyphrase);
$stmt->execute();
$num_rows = $stmt->num_rows;
$stratoparse=null;
$date=null;
$stmt->bind_result($stratoparse,$date);
while($stmt->fetch()){
echo $date.'<br>'.$stratoparse.'<br>'.'<br>';
}echo $num_rows;
$stmt2=$link2->prepare('SELECT COUNT(keyphrase) FROM stock WHERE user=? AND keyphrase=?');
$stmt2->bind_param('ss',$userrname,$keyphrase);
echo $stmt->execute();
$stmt2->bind_result($keyphrase);
$num_rows2 = $stmt2->num_rows;
echo $num_rows2;
Предполагая, что вы имеете в виду количество строк, а не количество столбцов, цикл while не нужен — вы можете получить количество рядов возвращается непосредственно из оператора SQL:
$stmt->store_result();
$num_rows = $stmt->num_rows;
$stmt->close();
Количество столбцов, которые вы уже знаете по вашему запросу SELECT.
РЕДАКТИРОВАТЬ: на основе ваших комментариев ниже, вы хотите сохранить результаты вашего запроса для дальнейшего использования. К сожалению, используя подготовленные операторы, это несколько сложнее, чем стандартный результат msyql. Вы можете увидеть некоторые примеры в документации для bind_result, но основная идея заключается в следующем:
$rows = array();
while ($stmt->fetch()) {
$rows[] = array('key1'=>$field1, 'key2'=>$field2, ...);
}
Конечно, не полный код, но как только вы его уточните, вы получите массив строк, где каждый элемент является строкой в виде ассоциативного массива, так же, как вы получите с помощью функции fetch_assoc () результата mysql.
Других решений пока нет …