Что не правильно в коде?

Список повторяется бескончено

<?

echo("<meta charset=utf-8>");

$link=mysql_connect('localhost','root','') or die ('noconnect');

mysql_select_db('lol') or die ('net dostupda k bd');

echo ("

<style type=\"text/css\">

body { font: 17px Georgia; color: brown; }

h3 { font-size: 16px; text-align: center; }

table { width: 50px; border-collapse: collapse; border-spacing:3px 4px; background: lightgreen; }

td { padding: 3px; text-align: center; vertical-align: middle; }

</style>");

// Основная табилца

echo("<h3>OFFICIAL TABLE</h3>");

$x="select * from tovar ";

$v=mysql_query($x);

mysql_error();

if (mysql_num_rows($v) > 0){

while($d = mysql_fetch_array($v))

{

$nom1=mysql_result($v,1,"nom");

$naim1=mysql_result($v,1,"naim");

$vid1=mysql_result($v,1,"vid");

$cena1=mysql_result($v,1,"cena");

$garant1=mysql_result($v,1,"garant");

$dopuslug1=mysql_result($v,1,"dopuslug");

$nom11=mysql_result($v,2,"nom");

$naim11=mysql_result($v,2,"naim");

$vid11=mysql_result($v,2,"vid");

$cena11=mysql_result($v,2,"cena");

$garant11=mysql_result($v,2,"garant");

$dopuslug11=mysql_result($v,2,"dopuslug");

echo ("

<table>

<table border=\"1\" cellpadding=\"0\" cellspacing=\"0\" style=\"margin-left:160\">

<tr style=\"padding:2px margin:2px\">

<td align=\"center\" ><b>nom</b></td>

<td align=\"center\" ><b>naim</b></td>

<td align=\"center\"><b>vid</b></td>

<td align=\"center\"><b>cena</b></td>

<td align=\"center\"><b>garant</b></td>

<td align=\"center\"><b>dop. uslugi</b></td>

</tr>

<tr>

<td>".$d['nom']."</td>

<td>".$d['naim']."</td>

<td>".$d['vid']."</td>

<td>".$d['cena']."</td>

<td>".$d['garant']."</td>

<td>".$d['dopuslug']."</td>

</tr>

<tr>

<td>".$nom1."</td>

<td>".$naim1."</td>

<td>".$vid1."</td>

<td>".$cena1."</td>

<td>".$garant1."</td>

<td>".$dopuslug1."</td>

</tr>

<tr>

<td>".$nom11."</td>

<td>".$naim11."</td>

<td>".$vid11."</td>

<td>".$cena11."</td>

<td>".$garant11."</td>

<td>".$dopuslug11."</td>

</tr>

</table>

");

}

}

// Если нажата кнопка poisk

$pd=$_POST['sear'];

if (isset($_POST['poisk'])) {

switch($_POST['sear']) {

case $pd:

$isk=mysql_query(" select * from `tovar` where `nom`=\"$pd\" or `naim`=\"$pd\" or `vid`=\"$pd\" or `cena`=\"$pd\" or `garant`=\"$pd\" or `dopuslug`=\"$pd\" ");

while([email protected]_fetch_assoc($isk))

{

echo ("

<h5 style='color:black'><b>FOUND VALUES:</b></h5>

<table border=2 >

<tr style=\"padding:2px margin:2px\">

<td align=\"center\" ><b>№</b></td>

<td align=\"center\"><b>naimenovanie</b></td>

<td align=\"center\"><b>cena</b></td>

<td align=\"center\"><b>vid</b></td>

<td align=\"center\"><b>garant</b></td>

<td align=\"center\"><b>gop. uslugi</b></td>

</tr>

<tr>

<td>".$r['nom']."</td>

<td>".$r['naim']."</td>

<td>".$r['vid']."</td>

<td>".$r['cena']."</td>

<td>".$r['garant']."</td>

<td>".$r['dopuslug']."</td>

</tr>

</table>

");

}

break;

}

}

?>

<html>

<body>

<style type=\"text/css\" >

bg {background-color: #FFEBD7;}

input {

left:100;color: #ff0000;

}

</style>

<form method="post">

<input type="submit" name="poisk" value="'" style="border-style: dotted;color:#c936ba"><br>

<input type="text" name="sear" />

</form>

<a href=new10.php style="color: green">nazad</a>

</body>

</html>

1 2019-09-26 21:07:43

Ответов: 1

Скорее всего, проблема в строке

while($d = mysql_fetch_array($v))

Вообще-то оператор while используется вот в таком варианте:

while ($d = mysql_fetch_row($v))

т.е. выборка идет построчная, пока строки отдаются mysql_fetch_row. Если же вы сразу берете весь массив, то потом надо именно просматривать массив, а не вызывать опять mysql_fetch_array.