2012-04-05 3 views
-2

모든 레코드를 데이터베이스에서 가져 오는 데 시간이 있습니다. 예를 들어 나는mysql/PHP 코드가 처음과 마지막을 제외한 모든 행을 반환합니다.

$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 개의 레코드 만 있습니다.

나는 바보 같은 것을 놓치고있다. 나는 그것을 안다. 나는 질문을보고 답을 찾을 수 없었다. 감사합니다

+0

, 당신은 우리를 위해 당신의 DB를 붙여 넣을 수 있습니다 :

이 코드해야 하는가? – DaOgre

+0

그 Norse, 똑같은 것이있다 : ( – ATechGuy

+0

Keaner가 무슨 뜻인지 잘 모르겠다. $ count = mysql_num_rows ($ result);에 추가해 보라; count는 $ count이다; "'루핑을하기 전에 mysql이 기대하는 행 수를 확보하고 있는지 확인하십시오. 위의 코드를 사용하여 전체 코드로 업데이트 할 수 있다면 ("SELECT * from plant_info"덤프와 마찬가지로) 사람들이 도와 줘요 – DaOgre

답변

3

당신이 두 번 mysql_fetch_array 명령을 호출하고 있기 때문에 그것은있을 수 있습니다.

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

당신은 단지 while 매개 변수 안에있는, 한 번 mysql_fetch_array를 선언해야합니다.

5 개 기록이있는 경우
$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> 

"; 
} 
+0

아래의 Cal의 대답은 나에게 모든 걸 얻었지만 첫 번째 결과는 매우 좋았습니다. $ num_rows = mysql_num_rows ($ result); echo "$ num_rows 행 \ n"; "5"라고 말합니다. – ATechGuy

+0

Cal의 제안이 올바른 구문입니다.잘못 구현하지 않는 한 모든 결과를 제공해야합니다. 나는 당신을 위해 나의 대답을 업데이트 할 것이다. – Norse

+0

업데이트 전체 코드, 대기 :) – ATechGuy

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){ 
    ... 
} 
+0

고마워, 내 5 개 중 4 개가 나에게 돌아 왔어 .1 개만 빠져서 첫 번째 것이된다. – ATechGuy

+0

전체 코드를 보여주기 위해 질문을 업데이트 할 수 있습니까? 예제 코드를 줄여야합니다. 가능한 한 문제를 격리 시키십시오. 각 루프마다 한 줄씩 표시하십시오. 코드가 적을수록 문제를 쉽게 찾아 낼 수 있습니다! – Cal

+0

나는 또한 이것들 중 하나를 가지고있다. $ returneddata = mysql_fetch_array ($ result); 첫 번째 결과를 얻었으나 다음과 같이 데이터를 표시합니다. $ LatinData = $ returneddata [ 'Latin_Name']; hmmmm – ATechGuy

관련 문제