-2

データベースからすべてのレコードを取得しようとしています。たとえば、私は次のものを持っています

$result = mysql_query("SELECT * FROM `plant_info` ORDER BY id LIMIT 0, 50") or die(mysql_error());
// Variables to pull from the database
// I know the line below is the culprit now, so i must change the code below correct? ///
$returneddata = mysql_fetch_array($result);
///////////////////////////////////////////
$LatinName = $returneddata['Latin_Name'];
$CommonName = $returneddata['Common_Name'];
$Category = $returneddata['Category'];
$Type = $returneddata['Type'];
$Fruit = $returneddata['Fruit'];
$Flower = $returneddata['Flower'];
$MinHeight = $returneddata['Min_Height'];
$MaxHeight = $returneddata['Max_Height'];
$MinWidth = $returneddata['Min_Width'];
$MaxWidth = $returneddata['Max_Width'];
$Exposure = $returneddata['Exposure'];
$Comments = $returneddata['Comments'];
$SoilType = $returneddata['Soil_Type'];
$Zone = $returneddata['Zone'];
$PotSize = $returneddata['Pot_Size'];
$CostPrice = $returneddata['Cost_Price'];
$RetailPrice = $returneddata['Retail_Price'];
$ImageName = $returneddata['Image_Name'];
$ImageNameThumb = $returneddata['Image_Name_Thumb'];
$num_rows = mysql_num_rows($result); echo "$num_rows Rows\n";

while ($row = mysql_fetch_array($result)) {


echo "                           <tr>
                            <td align=\"center\" bgcolor=\"#000000\">
                                <p><img src=\"$row[Image_Name]\" style=\"width:120px;height:auto;\"></p>
                            </td>
                            <td align=\"center\" bgcolor=\"#90c084\">
                                <p>$row[Latin_Name]</p>
                            </td>
                            <td align=\"center\" bgcolor=\"#90c084\">
                                <p>$row[Common_Name]</p>
                            </td>
                            <td align=\"center\" bgcolor=\"#90c084\">
                                <p>$row[Category]</p>
                            </td>
                            <td align=\"center\" bgcolor=\"#90c084\">
                                <p>$row[Type]</p>
                            </td>

                            <td align=\"center\" bgcolor=\"#90c084\">
                                <p>$row[Flower]</p>

                            </td>
                            <td align=\"center\" bgcolor=\"#90c084\">
                               <p>$row[Comments]</p>
                            </td>

                            </td>
                            <td align=\"center\" bgcolor=\"#90c084\">
                               <p><a href=\"editplant.php?get=$row[id]\">Edit</a></p>
                               <p><a href =\"print_sign_div.php?get=$row[id]\">Print</a></p>
                            </td>
                        </tr>

";
}

私が抱えている問題は、最初のレコードを除くすべてのレコードをプルすることです。他のすべてのレコードが示すように、現在 5 つのレコードしかありません。

私はそれを知っているばかげたことを見逃しています。私は質問を見て、答えを見つけることができませんでした。ありがとう

4

2 に答える 2

3

mysql_fetch_arrayコマンドを2回呼び出していることが原因である可能性があります。

$row = mysql_fetch_array($result);
while ($row = mysql_fetch_array($result)) {

mysql_fetch_arrayパラメータ内にある1回だけ宣言する必要がありwhileます。

これはあなたのコードでなければなりません:

$result = mysql_query("SELECT * FROM `plant_info` ORDER BY id LIMIT 0, 30");
while ($row = mysql_fetch_array($result)) {

echo "                           <tr>
                            <td align=\"center\" bgcolor=\"#000000\">
                                <p><img src=\"$row[Image_Name]\" style=\"width:120px;height:auto;\"></p>
                            </td>
                            <td align=\"center\" bgcolor=\"#90c084\">
                                <p>$row[Latin_Name]</p>
                            </td>
                            <td align=\"center\" bgcolor=\"#90c084\">
                                <p>$row[Common_Name]</p>
                            </td>
                            <td align=\"center\" bgcolor=\"#90c084\">
                                <p>$row[Category]</p>
                            </td>
                            <td align=\"center\" bgcolor=\"#90c084\">
                                <p>$row[Type]</p>
                            </td>

                            <td align=\"center\" bgcolor=\"#90c084\">
                                <p>$row[Flower]</p>

                            </td>
                            <td align=\"center\" bgcolor=\"#90c084\">
                               <p>$row[Comments]</p>
                            </td>

                            </td>
                            <td align=\"center\" bgcolor=\"#90c084\">
                               <p><a href=\"editplant.php?get=$row[id]\">Edit</a></p>
                               <p><a href =\"print_sign_div.php?get=$row[id]\">Print</a></p>
                            </td>
                        </tr>

";
}
于 2012-04-05T23:02:24.653 に答える
1

有効な/すべてのPHPを投稿しませんでした-mysql_query()呼び出しはありません。

SELECT * FROM `plant_info` ORDER BY id LIMIT 0, 30
$row = mysql_fetch_array($result);
while ($row = mysql_fetch_array($result)) {

行 2 では、行をフェッチし、とにかく何もせず、最初の行を破棄します。これを試して:

$result = mysql_query("SELECT * FROM `plant_info` ORDER BY id LIMIT 0, 30");
while ($row = mysql_fetch_array($result)) {

質問を更新した後、最初の行から情報を取り出してから、すべての行をループしたいようです。これを行う方法は次のとおりです。

$result = mysql_query("SELECT * FROM `plant_info` ORDER BY id LIMIT 0, 30");
while ($row = mysql_fetch_array($result)) {
  $rows[] = $row;
}

$row = $rows[0];
$LatinName = $returneddata['Latin_Name'];
...

foreach ($rows as $row){
    ...
}
于 2012-04-05T22:59:58.567 に答える