2014-02-08 2 views
0

Мне нужно создать некоторые php-страницы, которые позволят вам вставлять и отображать некоторые случайные изображения (сохраненные как blob в моей базе данных mysql). Ну, когда я пытаюсь это сделать, это дает мне эту ошибку: Warning: mysql_fetch_array(): поставленный аргумент не является допустимым ресурсом результата MySQL. А вот моя страница:Показать некоторые изображения с помощью mysql_fetch_array()

$n="SELECT COUNT('id_product') 
FROM 'products'"; 
$value=mysql_query($n); 

do 
{ 
$selectionASC='SELECT id_product 
     FROM products 
     ORDER BY id_product ASC 
     LIMIT 1'; 
$selectionDESC='SELECT id_product 
     FROM products 
     ORDER BY id_product DESC 
     LIMIT 1'; 
    $ASC=mysql_query($selectionASC) 
    or die ('Impossible execute the query <br />').mysql_error(); 
    $DESC=mysql_query($selectionDESC) 
    or die ('Impossible execute the query <br />').mysql_error(); 

    //____________________________________________________________________ 
    $rand_n=rand(($ASC-1),($DESC+1)); 

    //____________________________________________________________________ 
    $selected='SELECT id_product,name, price, img 
     FROM products 
     WHERE id_product='.$rand_n; 
    //____________________________________________________________________ 
    while($row=mysql_fetch_array($selected)) 
     { 
      echo "Product'id: &nbsp"; echo $row[0]; 
      echo '<br />'; 
      echo "Name: &nbsp"; echo $row[1]; 
      echo '<br />'; 
      echo "Price:: &nbsp"; echo $row[2]; 
      echo '<br />'; 
      echo "Immage: <img src='images/".$row['img']."' alt='Image'>";; 
      echo '<hr> <br />'; 

      $value--; 
     } 
} 
while ($value==0) 

кто-то может быть так добры сказать мне, где я ошибаюсь? Спасибо и извините за мой бедный английский!

EDIT:

$allowedExts=array("gif", "jpeg", "jpg", "png"); 

if(isset($_POST['submit'])) 
    { 
    $temp=explode(".", $_FILES["file"]["name"]); 
$extension=end($temp); 

if(isset($_FILES['file']['name'])) 
{ 
    if(!empty($_FILES['file']['name'])) 
    { 
     $directory='\www\v1.2\loaded'; 
     $uploadfile = $directory . basename($_FILES['file']['name']); 

     if ((($_FILES["file"]["type"] == "image/gif") 
      || ($_FILES["file"]["type"] == "image/jpeg") 
      || ($_FILES["file"]["type"] == "image/jpg") 
      || ($_FILES["file"]["type"] == "image/pjpeg") 
      || ($_FILES["file"]["type"] == "image/x-png") 
      || ($_FILES["file"]["type"] == "image/png")) 
      && ($_FILES["file"]["size"] < 20000) 
      && in_array($extension, $allowedExts)) 
     { 
       if ($_FILES["file"]["error"] > 0) 
       { 
       echo "Return Code: " . $_FILES["file"]["error"] . "<br>"; 
       } 
       else 
       { 
       //$nameImage=$_FILES(["file"]["name"]); 
       $typeImage=$_FILES["file"]["type"]; 
       $sizeImage=$_FILES["file"]["size"]; 

        if (file_exists("upload/" . $_FILES["file"]["name"])) 
        { 
          echo $_FILES["file"]["name"] . " already exists. "; 
        } 
        else 
        { 
          if (move_uploaded_file($_FILES['file']['tmp_name'], $uploadfile)) 
          { 
           $insert="INSERT INTO 'img' 
           VALUES ('','$uploadfile','$typeImage','$sizeImage')"; 
           echo "File's extension valid, upload executed"; 
          } 
          else 
          { 
          echo "Upload failed: ceck the size and the extension"; 
          } 
         } 
       } 
     } 
     else 
     { 
     echo "Invalid file"; 
     } 
    } 
} 

}

ответ

0

не проходят img в массиве. Вы должны передать номер индекса, потому что вы использовали mysql_fetch_array так, замените эту строку из кода,

echo "Immage: <img src='images/".$row['img']."' alt='Image'>";; 

в

echo "Immage: <img src='images/".$row['3']."' alt='Image'>"; 

Здесь я предполагаю IMG URL магазина на 3-й индекс. пожалуйста, проверьте индекс изображения и замените значение 3

================================================================================================================================================================== =============================================

Лучший способ использовать mysql_fetch_assoc. В этом случае вам не требуется найти индекс столбца из базы данных

просто замените цикл while из вашего кода. будет определенно работать

while($row=mysql_fetch_assoc($selected)) 
     { 
      echo "Product'id: &nbsp"; echo $row['id_product']; 
      echo '<br />'; 
      echo "Name: &nbsp"; echo $row['name']; 
      echo '<br />'; 
      echo "Price:: &nbsp"; echo $row['price']; 
      echo '<br />'; 
      echo "Immage: <img src='images/".$row['img']."' alt='Image'>"; 
      echo '<hr> <br />'; 

      $value--; 
     } 
+0

Спасибо, это было полезно! Но, в месте с изображения, он маркирует «исходный код». Вы предлагаете? – DiEich

+0

Что ты имеешь в виду? PLZ объяснить еще раз –

+0

Когда я запускаю страницу на своем сервере, страница работает и показывает мне все, кроме изображения. Вместо него появляются некоторые символы, а не двоичный код, но вместо этого что-то вроде этого: @ aCf # 124sf и т. Д. – DiEich

0

Согласно коду я вижу, что вы пропустите заявление

$ выбранный = mysql_query ($ выбраны);

выше линии

время ($ строки = mysql_fetch_array ($ выбрано)) { ........ }

Проверьте это должно помочь вам.

0

Я думаю, что проблема здесь $rand_n=rand(($ASC-1),($DESC+1));, $ASC and $DESC являются ресурсоемкими не целыми, а вы, вероятно, следует использовать $ASC = mysql_num_rows($ASC); $DESC = mysql_num_rows($DESC); , то вы можете использовать $rand_n=rand(($ASC-1),($DESC+1));

$selected='SELECT id_product,name, price, img 
    FROM products 
    WHERE id_product='.$rand_n; 
$selected = mysql_query($selected); 

while($row=mysql_fetch_assoc($selected)) 
    { 
     echo "Product'id: &nbsp"; echo $row['id_product']; 
     echo '<br />'; 
     echo "Name: &nbsp"; echo $row['name']; 
     echo '<br />'; 
     echo "Price:: &nbsp"; echo $row['price']; 
     echo '<br />'; 
     echo "Immage: <img src='images/".$row['img']."' alt='Image'>"; 
     echo '<hr> <br />'; 

     $value--; 
    } 
Смежные вопросы