2010-12-30 14 views
0

私はmysqlテーブルからデータを取り出して印刷するPHPファイルを持っています。ここで コードが..php - mysqlフェッチ配列(LIKE%)

<?php 
{ 
$username = 'root'; 
$bookid = "GCK"; 
$con = mysql_connect("localhost","root","password"); 
if (!$con) 
    { 
    die('Could not connect: ' . mysql_error()); 
    } 
mysql_select_db("library", $con); 

$query3 = "SELECT * FROM GCKcatalogue WHERE BookID LIKE'%$bookid%'"; 
$numresults=mysql_query($query3); 
$numrows=mysql_num_rows($numresults); 

$result3 = mysql_query($query3); 
($info3 = mysql_fetch_array($result3)); 

} 
?> 
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd"> 
<html> 
<head> 
<meta content="en-us" http-equiv="Content-Language"> 
<meta content="text/html; charset=utf-8" http-equiv="Content-Type"> 
<title>Results</title> 

</head> 
<body> 

<table align="center" style="width: 80%" class="style4" cellpadding="1px" cellspacing="1px"> 
<tr> 
<td class="style19">Resource ID</td><td class="style19">ISBN</td><td class="style19">Title</td><td class="style19">Author</td><td class="style19">Publisher</td><td class="style19">Year</td><td class="style19">Edition</td><td class="style19">Language</td><td class="style19">Type</td><td class="style19">Price</td><td class="style19">Location</td><td class="style19">Abstract</td><td class="style19">Availability</td><td class="style19">Last Issued</td><td class="style19">Last Received</td><td class="style19">Loan To</td> 
</tr> 

<?php 
while($info3 = mysql_fetch_array($result3)){ 
$RID = $info3["BookID"]; 
$ISBN = $info3["ISBN"]; 
$Title = $info3["Title"]; 
$Author = $info3["Author"]; 
$Publisher = $info3["Publisher"]; 
$Year = $info3["Year"]; 
$Edition = $info3["Edition"]; 
$Language = $info3["Language"]; 
$Type = $info3["Type"]; 
$Price = $info3["Price"]; 
$Location = $info3["Location"]; 
$Abstract = $info3["Abstract"]; 
$Availability = $info3["Availability"]; 
$Issue = $info3["IssueDate"]; 
$Receive = $info3["ReceiveDate"]; 
$User = $info3["User"]; 


echo ' 
<tr> 
<td class="style20">' . $RID . '</td> 
<td class="style20">' . $ISBN . '</td> 
<td class="style20">' . $Title . '</td> 
<td class="style20">' . $Author . '</td> 
<td class="style20">' . $Publisher . '</td> 
<td class="style20">' . $Year . '</td> 
<td class="style20">' . $Edition . '</td> 
<td class="style20">' . $Language . '</td> 
<td class="style20">' . $Type . '</td> 
<td class="style20">' . $Price . '</td> 
<td class="style20">' . $Location . '</td> 
<td class="style20">' . $Abstract . '</td> 
<td class="style20">' . $Availability . '</td> 
<td class="style20">' . $Issue . '</td> 
<td class="style20">' . $Receive . '</td> 
<td class="style20">' . $User . '</td> 
</tr> 
'; 
} 

?> 

</table> 

</body> 

</html> 

ある問題は、クエリが最初の行からのデータを(与えたりしない)スキップされ、 あります。 : - - 081106 $リビジョンmysqlnd 5.0.5-devの:他のすべては、私は

のApache/2.2.13(Win32の)PHP/5.3.0

MySQLクライアントのバージョンを使用しています。..

を正常に動作します1.3.2.27 $

答えて

1

それが原因でラインのです:

($info3 = mysql_fetch_array($result3)); 

あなたが最初の行をフェッチし、それを何もしていません:)

また、PHPの最初のブロックの周りの{とは何もしません。

EDIT:

、それは最初の行を除いて、前に働いていた場合は、[OK]をする必要がありあなたが最初のPHPブロックを変更した場合:

<?php 
$username = 'root'; 
$bookid = "GCK"; 
$con = mysql_connect("localhost","root","password"); 
if (!$con) 
    { 
    die('Could not connect: ' . mysql_error()); 
    } 
mysql_select_db("library", $con); 

$query3 = "SELECT * FROM GCKcatalogue WHERE BookID LIKE'%$bookid%'"; 
$numresults=mysql_query($query3); 
$numrows=mysql_num_rows($numresults); 

$result3 = mysql_query($query3); 
?> 

起こっていくつかの他の奇妙なことがあります。 (たとえば、$username変数を使用することはありません)が、これでは少なくとも正しい出力が得られるはずです。

+0

もし私がその行を削除したら、どうすればデータを取得できますか? –

+0

あなたはすでに 'while($ info3 = mysql_fetch_array($ result3))'の行にデータを取得しています。 –

+0

私のためにスクリプトを変更できますか?私はつまっています..:P –

1

この行の最初の行フェッチさbecouseそれは次のとおり

($info3 = mysql_fetch_array($result3));

が、これは2番目の項目に配列ポインタを移動させます。

また、行数とデータを取得するためにクエリを2回実行する必要はありません。私はまた、あなたはMySQL拡張を使用しないように助言する新しいMySqliPDOを使用することになり

$result = MySql_Query ('QUERY HERE'); 
$numOfRows = MySql_Num_Rows ($result); 
while ($row = MySql_Fetch_Array ($result)) { 
    ... 
} 

:ちょうどこのような何かを行います。

+0

私はその行を削除する場合、どのようにデータを取得できますか? –

+0

whileループでデータを取得しています: 'while($ info3 = mysql_fetch_array($ result3)){' –

0

も、このお試しください:

$結果=するmysql_query( 'HERE QUERYを'); $ numOfRows = MySql_Num_Rows($ result); while($ row = MySql_Fetch_Array($ result)){ $ arrData [] = $ row; }

print_r($ arrData);