-1

あるユーザーのすべての行を取り出してから別のページにエコーアウトする方法を提案するすべての可能な方法をコピーして貼り付けましたが、何もエコーアウトさせることはできません。PHPページをinclude_onceした場所で、コードが空白になっているだけでエラーが発生しません。

<?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 行のコンテンツがあり、すべてを引き出したいのですが、助けてください!

4

2 に答える 2

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

する必要があります

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

ここにもエラーがあります

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

     $rows[] = $row;
    }

$rowは定義されていないため、左側の配列に$rowsを割り当てる必要があります。左の配列に別の名前を付ける

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();
}
于 2012-12-28T15:47:15.610 に答える
0

ポイント障害の可能性がないかコードを確認してください。以下にいくつかのメモを示します。いくつかのデータベース ドライバーの代わりになる 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();
?>
于 2012-12-28T16:00:59.903 に答える