[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Вывод данных из mysql
vlggera
Ребята помогите не могу понять в чем дело...Суть такова - есть база исполнителей и их композиций... На страницу по запросу выводим исполнителя и его композиции..если их много, то идет постраничный вывод(на страницу 10 композиций)..проблема в том что на первой странице все нормально и в цикле все композиции выводятся,но переходя на вторую странцу выдает ошибку mysql_fetch_array(). А не выводит потому что 1 страница передает почему то не полное имя. Не могу понять почему обрезается имя
Свернутый текст

<?
$result77 = mysql_query("SELECT str FROM options_music", $db);
$myrow77 = mysql_fetch_array($result77);
$num = $myrow77["str"];

@$page = $_GET['page'];
$result00 = mysql_query("SELECT COUNT(*) FROM music WHERE name='$name'");
$temp = mysql_fetch_array($result00);
$posts = $temp[0];
$total = (($posts - 1) / $num) + 1;
$total = intval($total);
$page = intval($page);

if(empty($page) or $page < 0) $page = 1;
if($page > $total) $page = $total;
$start = $page * $num - $num;
$result = mysql_query("SELECT * FROM music WHERE name='$name' ORDER BY id LIMIT $start, $num",$db);
$myrow = mysql_fetch_array($result);

do
{
printf("<table width='480'>
<tr>
<td width='174' align='left'><span class='стиль4'>%s</span></td>
<td width='220' align='left'>
<object type='application/x-shockwave-flash' data='../blocks/player.swf' id=audioplayer1 height=20 width=220>
<param name=movie value='../blocks/player.swf'></param>
<param name=FlashVars value='playerID=1&soundFile=%s'></param>
<param name=quality value=high></param>
<param name=menu value=false></param>
<param name=wmode value=transparent></param>

</object
></td>
<td width='70'><div align='center'>%sСкачать</div></td>
</tr>
</table><br>"
,$myrow['title'],$myrow['play'],$myrow['download']);

}
while($myrow = mysql_fetch_array($result));

if ($page != 1) $pervpage = '<a href=viem_song?name='.$name.'&page=1>Первая</a> | <a href=viem_song.php?name='.$name.'&page='. ($page - 1) .'>Предыдущая</a> | ';

if ($page != $total) $nextpage = ' | <a href=viem_song.php?name='.$name.'&page='. ($page + 1) .'>Следующая</a> | <a href=viem_song.php?name='.$name.'&page=' .$total. '>Последняя</a>';

if($page - 5 > 0) $page5left = ' <a href=viem_song.php?name='.$name.'&page='. ($page - 5) .'>'. ($page - 5) .'</a> | ';
if($page - 4 > 0) $page4left = ' <a href=viem_song.php?name='.$name.'&page='. ($page - 4) .'>'. ($page - 4) .'</a> | ';
if($page - 3 > 0) $page3left = ' <a href=viem_song.php?name='.$name.'&page='. ($page - 3) .'>'. ($page - 3) .'</a> | ';
if($page - 2 > 0) $page2left = ' <a href=viem_song.php?name='.$name.'&page='. ($page - 2) .'>'. ($page - 2) .'</a> | ';
if($page - 1 > 0) $page1left = ' <a href=viem_song.php?name='.$name.'&page='. ($page - 1) .'>'. ($page - 1) .'</a> | ';

if($page + 5 <= $total) $page5right = ' | <a href=viem_song.php?name='.$name.'&page='. ($page + 5) .'>'. ($page + 5) .'</a>';
if($page + 4 <= $total) $page4right = ' | <a href=viem_song.php?name='.$name.'&page='. ($page + 4) .'>'. ($page + 4) .'</a>';
if($page + 3 <= $total) $page3right = ' | <a href=viem_song.php?name='.$name.'&page='. ($page + 3) .'>'. ($page + 3) .'</a>';
if($page + 2 <= $total) $page2right = ' | <a href=viem_song.php?name='.$name.'&page='. ($page + 2) .'>'. ($page + 2) .'</a>';
if($page + 1 <= $total) $page1right = ' | <a href=viem_song.php?name='.$name.'&page='. ($page + 1) .'>'. ($page + 1) .'</a>';

if ($total > 1)
{
Error_Reporting(E_ALL & ~E_NOTICE);
echo "<div class=\"pstrnav\">";
echo $pervpage.$page5left.$page4left.$page3left.$page2left.$page1left.'<b>'.$page.'</b>'.$page1right.$page2right.$page3right.$page4right.$page5right.$nextpage;
echo "</div>";
}

?>


 ! 

М
Обрамляйте код специальными тегами !
Winston




Спустя 5 минут, 4 секунды (28.09.2011 - 17:19) Winston написал(а):
Показывай код.

Спустя 2 часа, 15 минут (28.09.2011 - 19:34) vlggera написал(а):
Цитата (Winston @ 28.09.2011 - 14:19)
Показывай код.

Свернутый текст
<?
$result77 = mysql_query("SELECT str FROM options_music", $db);
$myrow77 = mysql_fetch_array($result77);
$num = $myrow77["str"];

@$page = $_GET['page'];
$result00 = mysql_query("SELECT COUNT(*) FROM music WHERE name='$name'");
$temp = mysql_fetch_array($result00);
$posts = $temp[0];
$total = (($posts - 1) / $num) + 1;
$total = intval($total);
$page = intval($page);

if(empty($page) or $page < 0) $page = 1;
if($page > $total) $page = $total;
$start = $page * $num - $num;
$result = mysql_query("SELECT * FROM music WHERE name='$name' ORDER BY id LIMIT $start, $num",$db);
$myrow = mysql_fetch_array($result);

do
{
printf("<table width='480'>
<tr>
<td width='174' align='left'><span class='стиль4'>%s</span></td>
<td width='220' align='left'>
<object type='application/x-shockwave-flash' data='../blocks/player.swf' id=audioplayer1 height=20 width=220>
<param name=movie value='../blocks/player.swf'></param>
<param name=FlashVars value='playerID=1&soundFile=%s'></param>
<param name=quality value=high></param>
<param name=menu value=false></param>
<param name=wmode value=transparent></param>

</object
></td>
<td width='70'><div align='center'>%sСкачать</div></td>
</tr>
</table><br>"
,$myrow['title'],$myrow['play'],$myrow['download']);

}
while($myrow = mysql_fetch_array($result));

if ($page != 1) $pervpage = '<a href=viem_song?name='.$name.'&page=1>Первая</a> | <a href=viem_song.php?name='.$name.'&page='. ($page - 1) .'>Предыдущая</a> | ';

if ($page != $total) $nextpage = ' | <a href=viem_song.php?name='.$name.'&page='. ($page + 1) .'>Следующая</a> | <a href=viem_song.php?name='.$name.'&page=' .$total. '>Последняя</a>';

if($page - 5 > 0) $page5left = ' <a href=viem_song.php?name='.$name.'&page='. ($page - 5) .'>'. ($page - 5) .'</a> | ';
if($page - 4 > 0) $page4left = ' <a href=viem_song.php?name='.$name.'&page='. ($page - 4) .'>'. ($page - 4) .'</a> | ';
if($page - 3 > 0) $page3left = ' <a href=viem_song.php?name='.$name.'&page='. ($page - 3) .'>'. ($page - 3) .'</a> | ';
if($page - 2 > 0) $page2left = ' <a href=viem_song.php?name='.$name.'&page='. ($page - 2) .'>'. ($page - 2) .'</a> | ';
if($page - 1 > 0) $page1left = ' <a href=viem_song.php?name='.$name.'&page='. ($page - 1) .'>'. ($page - 1) .'</a> | ';

if($page + 5 <= $total) $page5right = ' | <a href=viem_song.php?name='.$name.'&page='. ($page + 5) .'>'. ($page + 5) .'</a>';
if($page + 4 <= $total) $page4right = ' | <a href=viem_song.php?name='.$name.'&page='. ($page + 4) .'>'. ($page + 4) .'</a>';
if($page + 3 <= $total) $page3right = ' | <a href=viem_song.php?name='.$name.'&page='. ($page + 3) .'>'. ($page + 3) .'</a>';
if($page + 2 <= $total) $page2right = ' | <a href=viem_song.php?name='.$name.'&page='. ($page + 2) .'>'. ($page + 2) .'</a>';
if($page + 1 <= $total) $page1right = ' | <a href=viem_song.php?name='.$name.'&page='. ($page + 1) .'>'. ($page + 1) .'</a>';

if ($total > 1)
{
Error_Reporting(E_ALL & ~E_NOTICE);
echo "<div class=\"pstrnav\">";
echo $pervpage.$page5left.$page4left.$page3left.$page2left.$page1left.'<b>'.$page.'</b>'.$page1right.$page2right.$page3right.$page4right.$page5right.$nextpage;
echo "</div>";
}

?>


 ! 

М
Обрамляйте код специальными тегами !
Winston

Спустя 35 минут, 21 секунда (28.09.2011 - 20:09) kovalevsky написал(а):
Ты показал бы наверное инициализацию переменной $name и что и как ты с ней делаешь до этого. Может проблема там.

пс. А вообще наверное быстрее бы всего тебе дадут ответ там, где ты нарыл код этой постраничной навигации wink.gif

Спустя 16 минут, 13 секунд (28.09.2011 - 20:25) vlggera написал(а):
Цитата (kovalevsky @ 28.09.2011 - 17:09)
Ты показал бы наверное инициализацию переменной $name и что и как ты с ней делаешь до этого. Может проблема там.

пс. А вообще наверное быстрее бы всего тебе дадут ответ там, где ты нарыл код этой постраничной навигации wink.gif

if (isset($_GET['name'])) {$id = $_GET['name'];}

я пока только учусь ездить на трехколесном велике..а передается $name методом гет с другой страницы и вывод песен в цикле идет нормально,вся загвостка при переходе на вторую страницу..идет обрезание вместо Иван Иванов передается Иван

Спустя 15 минут, 52 секунды (28.09.2011 - 20:41) kovalevsky написал(а):
так погоди, я не понимаю твой код слегка.
если там ты используешь переменную name, а сейчас ты пишешь:
{$id = $_GET['name'];}


попробуй тогда заменить в скрипте $name на $id

у тебя переменная $name или $id никак не обрабатывается? Типо функциями trim или explode?

Спустя 30 минут, 53 секунды (28.09.2011 - 21:12) vlggera написал(а):
Цитата (kovalevsky @ 28.09.2011 - 17:41)
так погоди, я не понимаю твой код слегка.
если там ты используешь переменную name, а сейчас ты пишешь:
{$id = $_GET['name'];}


попробуй тогда заменить в скрипте $name на $id

у тебя переменная $name или $id никак не обрабатывается? Типо функциями trim или explode?

извини не то написал if (isset($_GET['name'])) {$name = $_GET['name'];}

Спустя 6 минут, 40 секунд (28.09.2011 - 21:19) kovalevsky написал(а):
vlggera
Цитата
у тебя переменная $name или $id никак не обрабатывается? Типо функциями trim или explode?


Ищи исполнителя только по имени или только по фамилии, а на крайний случай функцией explode разбивай переменную $name на два куска - имя и фамилию и ищи сразу по ним двум в базе данных. Думаю в таком случае проблема должна исчезнуть

Спустя 29 минут, 13 секунд (28.09.2011 - 21:48) vlggera написал(а):
Цитата (kovalevsky @ 28.09.2011 - 18:19)
vlggera
Цитата
у тебя переменная $name или $id никак не обрабатывается? Типо функциями trim или explode?


Ищи исполнителя только по имени или только по фамилии, а на крайний случай функцией explode разбивай переменную $name на два куска - имя и фамилию и ищи сразу по ним двум в базе данных. Думаю в таком случае проблема должна исчезнуть

Спасибо большое! Я понял суть..буду пробывать..а можно как нибудь экранировать пробелы?

Спустя 7 минут, 31 секунда (28.09.2011 - 21:56) kovalevsky написал(а):
vlggera,
Если честно, то было бы меньше мороки с выводом пользователей по их id.
или на крайняк конвертировать в запросе их имя в транслит, а вместо пробелов ставить, например, "_", а на выходе возвращать всё обратно.


Спустя 23 минуты, 32 секунды (28.09.2011 - 22:19) vlggera написал(а):
Цитата (kovalevsky @ 28.09.2011 - 18:56)
vlggera,
Если честно, то было бы меньше мороки с выводом пользователей по их id.
или на крайняк конвертировать в запросе их имя в транслит, а вместо пробелов ставить, например, "_", а на выходе возвращать всё обратно.

Попробую..единственное что я не пойму,это почему тогда до перехода на вторую страницу данные вытаскиваются нормально и в $name полное название группы, а вот когда наводишь курсор переход на вторую страницу уже видно что нейм урезан...если бы ошибка была при первой передаче нейм, то тогда у меня вообще бы ничего не вывелось и на первой странице...вот что мне покое не дает













Спустя 4 минуты, 42 секунды (28.09.2011 - 22:24) kovalevsky написал(а):
vlggera
Я вот ещё что подумал.
попробуй ещё порыть по поводу функции urlencode. Почитай, может придумаешь ещё что то.
Попробуй использовать urlencode($name), возможно поможет.

Но по моему все-таки проще всего организовать всё по id'у исполнителя)

Спустя 26 минут, 46 секунд (28.09.2011 - 22:51) vlggera написал(а):
Цитата (kovalevsky @ 28.09.2011 - 19:24)
vlggera
Я вот ещё что подумал.
попробуй ещё порыть по поводу функции urlencode. Почитай, может придумаешь ещё что то.
Попробуй использовать urlencode($name), возможно поможет.

Но по моему все-таки проще всего организовать всё по id'у исполнителя)

я пробывал..ни как..буду думать и пробывать по id или изменю структуру таблицы..просто выборку делал по имени потому что композиции группы записаны отдельными записями...а по id я думаю есть смысл подумать...есть мысля..спасибо что пнул в нужном направлении...удачи тебе и всего хорошего..
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.