2013-08-14 14 views
0

Мой идентификатор кодирования для результатов поиска.Показать несколько строк MySQL

Я показываю результаты поиска, на данный момент он покажет только первый результат, как я могу сделать это показать все результаты, соответствующие поиску?

Вот мой код

 <?php 
    $name=$_GET["q"]; 
    if ($name<=""){echo(""); 
    } 
    else 
    { 
    $con = mysql_connect("localhost","cl49-XXX","XXX"); 
    if (!$con) 
     { 
     die('Could not connect: line 513 ' . mysql_error()); 
     } 
    mysql_select_db("cl49-xxx", $con)or die("Unable to select database"); 
    $result=mysql_query("SELECT * FROM products WHERE `prodname` LIKE '$name%' ")or die('Error: Line 519 ('.mysql_error().')'); 

    $row = mysql_fetch_array($result); 
    $prodID=$row['prodID']; 
    $prodname=$row['prodname']; 
    $catagory=$row['catagory']; 
    } 
    echo" 
    <div class='row-fluid portfolio-block'> 
    <div class='span5 portfolio-text'> 
    <img src='userpics/$prodID.jpg' height='80' width='80' alt='' /> 
    <div class='portfolio-text-info'> 
               <h4>$prodname</h4> 
    <p></p> 
     </div> 
     </div> 
    <div class='span5'> 
<div class='portfolio-info'> 
Product ID 
               <span>$prodID</span> 
     </div> 
    <div class='portfolio-info'> 
               catagory 
               <span>$catagory</span> 
</div> 
</div> 
    <div class='span2 portfolio-btn'> 
    <a href='edit_product.php?q=$prodID' class='btn bigicn-only'><span>View</span></a>         
    </div> 
    </div> "; 

    ?> 

Любая помощь будет здорово!

+0

Попробуйте зацикливание ... . – j08691

+0

как это сделать? – Shane

ответ

3

Использование while петли так: while ($row = mysql_fetch_array($result)) { }

<?php 
$name = $_GET["q"]; 
if ($name <= "") { 
    echo (""); 
} 
else { 
    $con = mysql_connect("localhost", "cl49-XXX", "XXX"); 
    if (!$con) { 
    die('Could not connect: line 513 ' . mysql_error()); 
    } 
    mysql_select_db("cl49-xxx", $con) or die("Unable to select database"); 
    $result = mysql_query("SELECT * FROM products WHERE `prodname` LIKE '$name%' ") or die('Error: Line 519 (' . mysql_error() . ')'); 
    while ($row = mysql_fetch_array($result)) { 
    $prodID = $row['prodID']; 
    $prodname = $row['prodname']; 
    $catagory = $row['catagory']; 
    echo " 
    <div class='row-fluid portfolio-block'> 
    <div class='span5 portfolio-text'> 
    <img src='userpics/$prodID.jpg' height='80' width='80' alt='' /> 
    <div class='portfolio-text-info'> 
               <h4>$prodname</h4> 
    <p></p> 
     </div> 
     </div> 
    <div class='span5'> 
<div class='portfolio-info'> 
Product ID 
               <span>$prodID</span> 
     </div> 
    <div class='portfolio-info'> 
               catagory 
               <span>$catagory</span> 
</div> 
</div> 
    <div class='span2 portfolio-btn'> 
    <a href='edit_product.php?q=$prodID' class='btn bigicn-only'><span>View</span></a> 
    </div> 
    </div> "; 
    } 
} 
?> 
+0

спасибо, когда я попробую это, я получаю 'server error' – Shane

+0

игнорировать, что .. отлично работает! БЛАГОДАРЯ!! – Shane

+0

@Shane Я проверял теперь, в чем проблема;) – Bora

2

вы должны перебрать вас результаты, как это:

while($row = mysel_fetch_array($result)){ 
$prodID = $row['prodID']; 
$prodname = $row['prodname']; 
$catagory = $row['catagory']; 
echo " 
<div class='row-fluid portfolio-block'> 
    <div class='span5 portfolio-text'> 
    <img src='userpics/$prodID.jpg' height='80' width='80' alt='' /> 
    <div class='portfolio-text-info'> 
     <h4>$prodname</h4> 
     <p></p> 
    </div> 
    </div> 
    <div class='span5'> 
    <div class='portfolio-info'> 
     Product ID 
     <span>$prodID</span> 
    </div> 
    <div class='portfolio-info'> 
     catagory 
     <span>$catagory</span> 
    </div> 
</div> 
<div class='span2 portfolio-btn'> 
    <a href='edit_product.php?q=$prodID' class='btn bigicn-only'><span>View</span></a> 
</div> 
</div> "; 
} 

Тем не менее, это довольно грязно, и даже хуже, deprecated. Попробуйте переключиться на функции mysqli_ * или PDO. И подумайте о капсулировании кода в классах или, по крайней мере, о функциях, чтобы немного почистить вещи.

2

сначала нужно найти, сколько строк кода есть в $ результат ... $numberofrows = mysql_num_rows($result), а затем сделать цикл, например for ($i =0; $i<$numberofrows; $i++), а затем вам нужно повторить все строки, которые вы получите в цикле

по путь ... с помощью функции mysql_ * является устаревшим, поэтому лучше использовать PDO или MySQLi ...

0

ли ваш $ присваивание строки в то время как блок, что-то вроде этого

<?php 
$name=$_GET["q"]; 
if ($name<=""){echo(""); 
}else { 

$con = mysql_connect("localhost","cl49-XXX","XXX"); 
    if (!$con) { 
     die('Could not connect: line 513 ' . mysql_error()); 
     } 

    mysql_select_db("cl49-xxx", $con)or die("Unable to select database"); 
    $result=mysql_query("SELECT * FROM products WHERE `prodname` LIKE '$name%' ")or die('Error: Line 519 ('.mysql_error().')'); 

    while($row = mysql_fetch_array($result)) { 
     $prodID=$row['prodID']; 
     $prodname=$row['prodname']; 
     $catagory=$row['catagory']; 

     echo" 
      <div class='row-fluid portfolio-block'> 
      <div class='span5 portfolio-text'> 
      <img src='userpics/$prodID.jpg' height='80' width='80' alt='' /> 
      <div class='portfolio-text-info'> 
                 <h4>$prodname</h4> 
      <p></p> 
       </div> 
       </div> 
      <div class='span5'> 
      <div class='portfolio-info'> 
      Product ID 
                  <span>$prodID</span> 
        </div> 
       <div class='portfolio-info'> 
                  catagory 
                  <span>$catagory</span> 
      </div> 
      </div> 
       <div class='span2 portfolio-btn'> 
       <a href='edit_product.php?q=$prodID' class='btn bigicn-only'><span>View</span></a>         
       </div> 
       </div> "; 
    } 
} 

?> 
Смежные вопросы