2012-04-04 2 views
-1

Ok У меня есть этот код:ошибка PHP при выполнении тузд

//this is the hi.php// 
<?php 
//highlight items// 
$con = mysql_connect("localhost","root",""); 
if (!$con) 
    { 
    die('Could not connect: ' . mysql_error()); 
    } 

mysql_select_db("juliver", $con); 

$result = mysql_query("SELECT * FROM hi WHERE pp='2'"); 

$hi = ""; 

while($row = mysql_fetch_array($result)) //<--- this is the line 13// 
    { 
    $hi .= "<div id='hicontainer'><a id='download_now' class='imgx' href='#?w=700' rel='popup'><img src='".$row['name']."' />"; 
    $hi .= "<p>".$row['title']."</p>"; 
    $hi .= "<a href='#?w=700' id='".$row['id']."' rel='popup' class='imgx'>View full</a> </div>"; 
    } 

//Lots of lots of code here I just specified those code which in error.// 

mysql_close($con); 

>

и где Heres им будет отображать выход на самом деле?.

<td> 
<!--highlight items--> 
<div id="tbtitle"> 
<img src="Images/galleryicon.png"/><p>Highlight items</p> 
</div> 
<div id="tblgal"> 
<? echo $hi; ?> 
</div> 
</td> 

Но я получаю сообщение об ошибке сказав: "Warning: mysql_fetch_array() ожидает параметр 1, чтобы быть ресурсом, логический дан в C: \ XAMPP \ HTDOCS \ madeinusa \ hi.php на линии 13."

, пожалуйста, имейте это в виду. Заранее спасибо.

+3

Совет. ** всегда сделать поиск точного сообщения об ошибке ** Вы найдете тонны результатов: http://stackoverflow.com/search?q=mysql_fetch_array%28%29+expects+parameter+1+to+be+resource%2C+boolean+given – deceze

+1

Кроме того, 'echo mysql_error()' может помочь решить большинство вопросов. Сделайте это под своим 'mysql_query (...)'. – MichaelRushton

ответ

-1

Возможно, у вас есть ошибка в запросе "SELECT * FROM hi WHERE pp='2'"
Попробуйте выполнить этот запрос непосредственно в mysql и посмотреть, что произойдет. Убедитесь, что имена таблиц и столбцов указаны правильно.

Кроме того, попробуйте указать имена таблиц и столбцы в символах backtick `, чтобы избежать случайного использования зарезервированных слов MySQL.

+0

Он должен всегда бросать в браузер исключение или общее сообщение об ошибке. –

1

$result имеет логическое значение - возможно, потому что ваш запрос не удался.

Перед попыткой его использования вы должны подтвердить результат.

После вашего запроса, вы могли бы сделать что-то вроде следующего, чтобы понять, почему ваш запрос не:

if(!$result) 
    exit(mysql_error()); 
-1

«SELECT * FROM привет где рр =„2“» запрос может вернуть ложные средства нет записей что полный запрос заполнения. Попробуйте echo mysql_num_rows ($ result); чтобы узнать, нет ли строк для запроса.

+0

Если результатов нет, 'mysql_query' вернет * пустой набор результатов *, а не' false'. – deceze

+0

, но значение переменной будет ложным, так как в запросе есть пустой набор результатов –

+0

Нет, пустой набор результатов является типом ресурсов mysql. Это * не * логическое 'false'. 'mysql_query' возвращает только логическое' false', если что-то не так с запросом, и оно не может быть выполнено. – deceze

1

или, проще говоря, вы можете использовать

$result = mysql_query("SELECT * FROM hi WHERE pp='2'") or die(mysql_error());

0

проверить это:

mysql_connect("localhost","username","password"); 
+0

Если соединение не установлено, оно уже выйдет из кода с ошибкой «Не удалось подключиться:« .... –

0

Во-первых, вы должны использовать правильную обработку исключений в коде. После строки

$result = mysql_query("SELECT * FROM hi WHERE pp='2'"); 

вы должны проверить, возвращает ли идентификатор ресурса или какую-либо ошибку в пути

if(!$result){ 
    // if you use try-catch, then use 
    throw new Exception(mysql_error()); 
    // Or you can use 
    die(mysql_error()); 
}else{ 
    while($row = mysql_fetch_array($result)) //<--- this is the line 13// 
    { 
     $hi .= "<div id='hicontainer'><a id='download_now' class='imgx' href='#?w=700'  rel='popup'><img src='".$row['name']."' />"; 
     $hi .= "<p>".$row['title']."</p>"; 
     $hi .= "<a href='#?w=700' id='".$row['id']."' rel='popup' class='imgx'>View full</a> </div>"; 
    } 

}  
Смежные вопросы