Вытягивание всех строк из базы данных для одного и того же пользователя

Я скопировал и вставлял все возможные методы, предлагая, как вытащить все строки для одного пользователя, а затем вывести их на другую страницу, но не может заставить его откликнуться на что-либо. Код не дает мне ошибку просто пустое место, где я включаю страницу с PHP.

<?php
$userid  = 10;  

/****************************************************************
* Open connection to the MySQL database
****************************************************************/

// Create new mysqli object representing a connection to the MySQL data
$mysqli = new mysqli("localhost", "username", "password", "db");

// Test if a connection error occurred
if ($mysqli->connect_errno !=0)  {
    exit;
}

/**************************************************************
* Run an SQL statement
**************************************************************/

// Create an INSERT query  
$query = "SELECT * FROM table WHERE(userid='".$userid."')";
$result = $mysqli->query($query);
if ($result = $mysqli->query($query)) {
    while ($rows = $result->fetch_assoc()) {
        $rows[] = $row;
    }
    foreach($rows as $row) {
        $category = $row['category'];
        $amount   = $row['amount'];
        echo $category;
    }
    $result->close();
}
//  Attempt to close connection
$closed = $mysqli->close();
?>

У этого пользователя 10 строк контента, и я хотел бы вытащить все, пожалуйста, помогите!

1
nl ja de
Почему вы выполняете запрос дважды и запускаете два отдельных цикла? Вы можете комбинировать циклы while + foreach и просто иметь echo $ rows ['category'] .
добавлено автор Marc B, источник

2 ответы

$query = "SELECT * FROM table WHERE(userid='".$userid."')";

Должно быть

$query = "SELECT * FROM table WHERE userid='".$userid."'";

Также здесь есть ошибка

while ($rows = $result->fetch_assoc()) {

     $rows[] = $row;
    }

$row is not defined, so you should assign $rows to your array on left. name the left array something else, like

if ($result = $mysqli->query($query)) {
    while ($rows = $result->fetch_assoc()) {
        $values[] = $rows;
    }
    foreach($values as $row) {
        $category = $row['category'];
        $amount   = $row['amount'];
        echo $category;
    }
    $result->close();
}
0
добавлено
добавлено автор juergen d, источник
@JW .: Вам не хватает места
добавлено автор juergen d, источник
Вы правы - я положил ( до , где ) в моей скрипке
добавлено автор juergen d, источник
Неа. это не имеет значения!
добавлено автор John Woo, источник
@juergend см. это sqlfiddle.com/#!2/879e0/12
добавлено автор John Woo, источник
@juergend ты сам проверил это? все равно он будет работать, sqlfiddle.com/#!2/879e0/14
добавлено автор John Woo, источник
См. Мое редактирование, чтобы ответить
добавлено автор Hanky Panky, источник

Просмотрите свой код для возможных сбоев точки, некоторые примечания ниже. Если вы узнаете, почему бы не взглянуть на класс PHP PDO, это было бы неплохой заменой для нескольких драйверов баз данных.

<?php

  $userid  = 10;  


  /****************************************************************
   * Open connection to the MySQL database
   ****************************************************************/

  //Create new mysqli object representing a connection to the MySQL data
   $mysqli = new mysqli("localhost", "username", "password", "db");


  //Test if a connection error occurred
   if ( $mysqli->connect_errno != 0 )
    exit( 'error on connect' );

     /**************************************************************
    * Run an SQL statement
    **************************************************************/

   //Create an INSERT query  

   //avoid temporary variables
    //$query = "SELECT * FROM table WHERE(userid='".$userid."')";
   //reader will know taht is a query by function name
    //WARNING you should scape data coming from form
    //expecting numeric data, so convert it
    $result = $mysqli->query( "SELECT * FROM table WHERE(userid='".intval( $userid )."')" );

   //error here
    //if ($result = $mysqli->query($query)) {
    //
    if ( !($result = $mysqli->query($result)) )
      exit( 'query error' );
   //error here also changed variable name
    //while ($rows = $result->fetch_assoc())
   //$rows[] = $row;
    $rows = array();
    while ( $tmp = $result->fetch_assoc() )
     $rows[] = $tmp;

    foreach($rows as $row)
    {
    //unnecessary code also, duplicating variable
     //$category  = $row['category'];
     //$amount    = $row['amount'];
     //echo $category;
      echo $row['category'];
    } 

     $result->close();
    }


//  Attempt to close connection
$closed = $mysqli->close();
?>
0
добавлено
phpGeeks
phpGeeks
3 620 участник(ов)

Best PHP chat Еще: @dbGeeks - базы данных @phpGeeksJunior - новичкам @moscowProgers - IT Москва @ebanoePhp - весёлый канал о PHP @laravel_pro - Laravel @jobGeeks - вакансии @jsChat - JS Правила: https://t.me/phpGeeks/764859 ДР - 28.03.2016

DBA - русскоговорящее сообщество
DBA - русскоговорящее сообщество
1 345 участник(ов)

Общаемся и обсуждаем темы, посвященные DBA, PostgreSQL, Redis, MongoDB, MySQL, neo4j, riak и т.д. См. также: @devops_ru, @kubernetes_ru, @docker_ru, @nodejs_ru Рекомендуем сразу отключить уведомления, чтобы пребывание здесь было полезным и комфортным.

PHP
PHP
1 309 участник(ов)

Группа про современный PHP. Обсуждаем ООП, TDD, BDD, DDD, SOLID, GRASP и прочие крутые базворды Для ознакомления: https://gist.github.com/mkusher/711bd46f0b62fbae851182e6fb3b1839 Группа PHP для новичков @phpGeeksJunior Вакансии: https://t.me/fordev

PHP — вакансии, поиск работы и аналитика
PHP — вакансии, поиск работы и аналитика
1 251 участник(ов)

Публикуем вакансии и запросы на поиск работы по направлению PHP, Laravel, Symfony, Yii и т.д. Здесь всё: full-time, part-time, remote и разовые подработки. См. также: @qa_jobs, @devops_jobs, @javascript_jobs, @nodejs_jobs, @uiux_jobs, @products_jobs

MySQL
MySQL
995 участник(ов)

The group is about MySQL. For code use hastebin.com. Admin: @smlkw

phpGeeksJunior
phpGeeksJunior
980 участник(ов)

Группа для новичков. Не стесняйтесь задавать вопросы по php. Не флудить!!!! Правила и полезные ссылки https://gist.github.com/exileed/a53dd0617b35a705ff44b38c8028e6a5 Бест от пхпгикс https://t.me/best_of_phpgeeks

phpclub.ru
phpclub.ru
872 участник(ов)

Официальный чат phpclub.ru - остерегайтесь подделок #rules Правила группы - уважайте друг друга. Скриншоты -> ссылками. Код -> pastebin.com. Вакансии строго -> https://goo.gl/4bNxym, в чат ссылку. За рекламу и мат - БАН!

Devall | PHP
Devall | PHP
272 участник(ов)

Пристанище для восходящих звёзд разработки, которые перейдут на более адекватные языки. http://combot.org/chat/-1001014863761 Инвайт: j.mp/devallphp