|
|
|
| почему то не работает этот кусок кода. (поиск песни) $txt - введенное слово для поиска. Две таблицы singers(исполнители)-поля id и singers(имя исполнитля), songs(песни)-поля id, singer(id из singers)и song(назв песни). Что я делаю нетак
if ($list == 1)
{#2
$num=1;
$txt=trim($txt);
$txt=stripslashes($txt);
$txt=htmlspecialchars($txt);
if (strlen($txt)<4 or empty($txt))
echo("<span class='warning'>Поисковый запрос не был введен, либо он менее 4 символов<span>");
else {#3
$result = mysql_query("SELECT * FROM songs WHERE MATCH(song) AGAINST('$txt') ORDER BY song",$db);
if (mysql_num_rows($result)>0)
{#4
echo (" <table class='table' CELLPADDING='2'>
<tr>
<th></th>
<th>Название песни</th>
<th>Исполнитель</th>
<th class='rowend'>Чистое поле</th>
</tr>");
$myrow = mysql_fetch_array($result);
do
{
$result1 = mysql_query("SELECT * FROM singers ORDER BY singer",$db);
$myrow1 = mysql_fetch_array($result1);
do
if ($myrow[singer] == $myrow1[id])
{
printf("
<tr class='rowA'>
<td>%s</td>
<td>%s</td>
<td><a href='singer_view.php?id=%s'>%s</a></td>
td class='rowend'></td>",$num,$myrow['song'],$myrow['singer'],$myrow1['singer']);
$num++;}
while ($myrow1 = mysql_fetch_array($result1));}
while ($myrow = mysql_fetch_array($result));
echo (" </table>");
}#4
else echo("<span class='warning'>Такой песни нет в базе<span>");
}#3
}#2
|
| |
|
|
|
|
|
|
|
для: MVlad
(28.11.2008 в 16:23)
| | mysql_fetch_array замените на mysql_fetch_assoc | |
|
|
|
|
|
|
|
для: bronenos
(28.11.2008 в 20:55)
| | Ооо, раз уж взялись поправлять, то давайте по полной. Слабо? :)) | |
|
|
|
|
|
|
|
для: BinLaden
(28.11.2008 в 20:58)
| | Ну, это по программной части, а по логике - гляжу..
<?php
if ($list == 1)
{
if (strlen($txt) < 4)
{
print "<span class='warning'>Поисковый запрос не был введен, либо он короче 4 символов</span>";
}
else
{
$txt = mysql_escape_string($txt);
$result = mysql_query("select * from songs where match(song) against('$txt') order by song limit 1");
if (mysql_num_rows($result))
{
print
"<table class='table' cellpadding='2'>
<tr>
<th></th>
<th>Название песни</th>
<th>Исполнитель</th>
<th class='rowend'>Чистое поле</th>
</tr>";
$num = 1;
while ($row = mysql_fetch_assoc($result))
{
$tres = mysql_query("select * from singers order by singer");
while ($trow = mysql_fetch_array($tres))
{
if ($row['singer'] != $trow['id']) continue;
print
"<tr class='rowA'>
<td>".($num++)."</td>
<td>$row[song]</td>
<td><a href='singer_view.php?id=$row[singer]'>$trow[singer]</a></td>
<td class='rowend'></td>";
}
}
print
"</table>";
}
else
{
print
"<span class='warning'>Такой песни нет в базе<span>";
}
}
}
?>
|
| |
|
|
|
|
|
|
|
для: bronenos
(28.11.2008 в 23:52)
| | > $tres = mysql_query("select * from singers order by singer");
> while ($trow = mysql_fetch_array($tres))
> {
> if ($row['singer'] != $trow['id']) continue;
0_0 | |
|
|
|
|
|
|
|
для: BinLaden
(29.11.2008 в 00:36)
| | Это я выписал чтобы удобнее читать было, а исправленный вариант вчера не сохранился из-за тупого интернета (((
<?php
if ($list == 1)
{
if (strlen($txt) < 4)
{
print "<span class='warning'>Поисковый запрос не был введен, либо он короче 4 символов</span>";
}
else
{
$txt = mysql_escape_string($txt);
$result = mysql_query("select * from songs where match(song) against('$txt') order by song limit 1");
if (mysql_num_rows($result))
{
print
"<table class='table' cellpadding='2'>
<tr>
<th></th>
<th>Название песни</th>
<th>Исполнитель</th>
<th class='rowend'>Чистое поле</th>
</tr>";
$num = 1;
while ($row = mysql_fetch_assoc($result))
{
$tres = mysql_query("select * from singers where id='$row[singer]' order by singer");
while ($trow = mysql_fetch_array($tres)) print
"<tr class='rowA'>
<td>".($num++)."</td>
<td>$row[song]</td>
<td><a href='singer_view.php?id=$row[singer]'>$trow[singer]</a></td>
<td class='rowend'></td>";
}
print
"</table>";
}
else
{
print
"<span class='warning'>Такой песни нет в базе<span>";
}
}
}
?>
|
| |
|
|
|