Как считать во время цикла вывода PHP SQL

Ле решение

Я приехал сюда с помощью Брайана и 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].'&nbsp;'.$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;

0

Решение

Предполагая, что вы имеете в виду количество строк, а не количество столбцов, цикл 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.

0

Другие решения

Других решений пока нет …