Проблем с класация вади грешка

onestarr

Registered
Проблема е следния имам класация за топ потребители но ми вади грешка на 19 ред ето какво има на него ред

PHP:
     $qu = mysql_query("SELECT * FROM users WHERE id = '".$r['us_id']."'");

Ето и целия код за класацията
PHP:
<?php
		$n = 1;
		$q = mysql> ('SELECT u.username, SUM(v.views) AS views FROM videos v INNER JOIN users u ON u.user_id = v.user_id GROUP BY v.user_id ORDER BY v.views DESC 5 
| username | views | 
+----------+-------+ 
| second   |    50 | 
| first    |    40 | 
| third    |     5 | 
+----------+-------+ 
3 rows in set (0.00 sec)'); 
    
		
			while($ru = mysql_fetch_array($q)or die(mysql_error())
			

			
			

                                             $qu = mysql_query("SELECT * FROM users WHERE id = '".$r['us_id']."'");
			$ru = mysql_fetch_array($qu);
                                             
	?>
			<table width="100%" border="0" cellspacing="2" cellpadding="2">
				<tr>
					<td width="10%" align="center"><big><b><?php echo $n++ ?></b></big></td>
					<td width="5%" class="music_video" style="float: none;"><a href="index.php?p=profile&id=<?php echo $ru['id'] ?>" title="<?php echo $r['username'] ?>"><img src="<?php echo $r['avatar'] ?>" width="80" height="60" style="margin: 0;" /></a></td>
					<td width="50%"><a href="index.php?p=profile&id=<?php echo $ru['id'] ?>"><b><?php echo $r['username'] ?></b></a></td>
					
					<td width="15%" align="center"><big><b><?php echo $r['views'] ?></b></big><br />гледания общо</td>
				</tr>
			</table>
			<div class="line"></div>
	<?php
		}
	?>
</div>
 
dakata__92 каза:
Замени редът така:

$qu = mysql_query("SELECT * FROM users WHERE id = '".$ru['us_id']."'");

Отново вади същата грешка

Parse error: syntax error, unexpected T_VARIABLE in /home/u721268565/public_html/topusers.php on line 19
 
dakata__92 каза:
А така ако замениш:
$qu = mysql_query("SELECT * FROM users WHERE id = '".$ru['user_id']."'");

Отново същото, проверих целия код в файла но не знам къде точно може да е грешката на този ред го променям как ли не но не става
 
dakata__92 каза:
Копирай цялата страница и я постни тук. :)

Вече съм го дал файла но ето го пак

PHP:
<?php
		$n = 1;
		$q = mysql> ('SELECT u.username, SUM(v.views) AS views FROM videos v INNER JOIN users u ON u.user_id = v.user_id GROUP BY v.user_id ORDER BY v.views DESC 5 
| username | views | 
+----------+-------+ 
| second   |    50 | 
| first    |    40 | 
| third    |     5 | 
+----------+-------+ 
3 rows in set (0.00 sec)'); 
    
		
			while($ru = mysql_fetch_array($q)or die(mysql_error())
			

			
			

                                             $qu = mysql_query("SELECT * FROM users WHERE id = '".$ru['user_id']."'");
			$ru = mysql_fetch_array($qu);
                                             
	?>
			<table width="100%" border="0" cellspacing="2" cellpadding="2">
				<tr>
					<td width="10%" align="center"><big><b><?php echo $n++ ?></b></big></td>
					<td width="5%" class="music_video" style="float: none;"><a href="index.php?p=profile&id=<?php echo $ru['id'] ?>" title="<?php echo $r['username'] ?>"><img src="<?php echo $r['avatar'] ?>" width="80" height="60" style="margin: 0;" /></a></td>
					<td width="50%"><a href="index.php?p=profile&id=<?php echo $ru['id'] ?>"><b><?php echo $r['username'] ?></b></a></td>
					
					<td width="15%" align="center"><big><b><?php echo $r['views'] ?></b></big><br />гледания общо</td>
				</tr>
			</table>
			<div class="line"></div>
	<?php
		}
	?>
</div>
 
Това не е валиден php код:

PHP:
                $n = 1;
                $q = mysql> ('SELECT u.username, SUM(v.views) AS views FROM videos v INNER JOIN users u ON u.user_id = v.user_id GROUP BY v.user_id ORDER BY v.views DESC 5 
| username | views | 
+----------+-------+ 
| second   |    50 | 
| first    |    40 | 
| third    |     5 | 
+----------+-------+ 
3 rows in set (0.00 sec)');

Вероятно си имал предвид това:


PHP:
<?php
                $n = 1;
                $q = mysql_query ('SELECT u.username, SUM(v.views) AS views FROM videos v INNER JOIN users u ON u.user_id = v.user_id GROUP BY v.user_id ORDER BY v.views DESC 5'); 
    
                
                        while($ru = mysql_fetch_array($q)or die(mysql_error())
                        

                        
                        

                                             $qu = mysql_query("SELECT * FROM users WHERE id = '".$ru['user_id']."'");
                        $ru = mysql_fetch_array($qu);
                                             
        ?>
                        <table width="100%" border="0" cellspacing="2" cellpadding="2">
                                <tr>
                                        <td width="10%" align="center"><big><b><?php echo $n++ ?></b></big></td>
                                        <td width="5%" class="music_video" style="float: none;"><a href="index.php?p=profile&id=<?php echo $ru['id'] ?>" title="<?php echo $r['username'] ?>"><img src="<?php echo $r['avatar'] ?>" width="80" height="60" style="margin: 0;" /></a></td>
                                        <td width="50%"><a href="index.php?p=profile&id=<?php echo $ru['id'] ?>"><b><?php echo $r['username'] ?></b></a></td>
                                        
                                        <td width="15%" align="center"><big><b><?php echo $r['views'] ?></b></big><br />гледания общо</td>
                                </tr>
                        </table>
                        <div class="line"></div>
        <?php
                }
        ?>
</div>
 
С този код който даде anonimen ми вадши грешка на 12 ред в случая на този код
PHP:
   $ru = mysql_fetch_array($qu);

Ето и грешката
Parse error: syntax error, unexpected T_VARIABLE in /home/u721268565/public_html/topusers.php on line 12
 
Замени го с това:
PHP:
   $r = mysql_fetch_assoc($qu);
Или
PHP:
   $ru = mysql_fetch_assoc($qu);
Или
PHP:
   $r = mysql_fetch_array($qu);
Или
PHP:
   $ru = mysql_fetch_array($qu);
 
Използвай някъв по-сложен редактор, който да ти открива грешките. Няма смисъл за една пропусната скоба да отваряш нова тема. Като за пример ти давам aptana studio и eclipse (и двата са безплатни), а и не са единствените. Предимството е, че веднага ти подчертава къде имаш незатворена скоба или нещо такова.
Интернет е бъкан и от онлайн инструменти, ако не ти се инсталират допълнителни програми. Оставям на теб да откриеш пропуснатата скоба.

+ с малко подреденост кодът става четим. Във вида, в който е в момента едва ли някой ще се хване да търси грешки.
 
dakata__92 каза:
Замени го с това:
PHP:
   $r = mysql_fetch_assoc($qu);
Или
PHP:
   $ru = mysql_fetch_assoc($qu);
Или
PHP:
   $r = mysql_fetch_array($qu);
Или
PHP:
   $ru = mysql_fetch_array($qu);

И с четерте кода ми вади една и съща грешка
 
anonimen каза:
Използвай някъв по-сложен редактор, който да ти открива грешките. Няма смисъл за една пропусната скоба да отваряш нова тема. Като за пример ти давам aptana studio и eclipse (и двата са безплатни), а и не са единствените. Предимството е, че веднага ти подчертава къде имаш незатворена скоба или нещо такова.
Интернет е бъкан и от онлайн инструменти, ако не ти се инсталират допълнителни програми. Оставям на теб да откриеш пропуснатата скоба.

+ с малко подреденост кодът става четим. Във вида, в който е в момента едва ли някой ще се хване да търси грешки.

Би ли ми дал линк към някой онлайн защото наистина не ми се инталират програми компа ми е пълен с тях
 
dakata__92 каза:
Notepad ++ си изтегли ще ти свърши работа. За скобата тя е след цикъла
while()
{ - добави я


} - имаш я

Имамnotepad ++ но не съм много запознат как се търси грешка с него..

За скобата след като добавя { ми вади грешка на него ред
 
Notepad++ е хубаво нещо, но за по-силни компютри според мен си заслужава нещо по-сериозно като aptana studio или eclipse.
Защото notepad++ оцветява кода (той не открива грешки), но ^^ тези редактори ти подчертават мястото на грешката и като застанеш върху тях ти излиза - например ако си пропуснал отваряща скоба излиза - Parse error "'}' expected"

Като за онлайн инструменти можеш да намериш много (в гугъл -> "php online debugger"), ето един резултат - http://ideone.com/ . Не забравяй да промениш езика на писане от java на php.

В np++ като сложиш курсора върху някоя скоба/кавичка ще ти покаже къде е съответната ѝ (за)отваряща
 
anonimen каза:
Notepad++ е хубаво нещо, но за по-силни компютри според мен си заслужава нещо по-сериозно като aptana studio или eclipse.
Защото notepad++ оцветява кода (той не открива грешки), но ^^ тези редактори ти подчертават мястото на грешката и като застанеш върху тях ти излиза - например ако си пропуснал отваряща скоба излиза - Parse error "'}' expected"

Като за онлайн инструменти можеш да намериш много (в гугъл -> "php online debugger"), ето един резултат - http://ideone.com/ . Не забравяй да промениш езика на писане от java на php.

В np++ като сложиш курсора върху някоя скоба/кавичка ще ти покаже къде е съответната ѝ (за)отваряща

Прихванах стил на писане, чрез който такива грешки отдавна не съм получавал и си ползвам Notepad++. Прав си за нови програмисти е добре да връща ерорче :?:
 
anonimen каза:
Notepad++ е хубаво нещо, но за по-силни компютри според мен си заслужава нещо по-сериозно като aptana studio или eclipse.
Защото notepad++ оцветява кода (той не открива грешки), но ^^ тези редактори ти подчертават мястото на грешката и като застанеш върху тях ти излиза - например ако си пропуснал отваряща скоба излиза - Parse error "'}' expected"

Като за онлайн инструменти можеш да намериш много (в гугъл -> "php online debugger"), ето един резултат - http://ideone.com/ . Не забравяй да промениш езика на писане от java на php.

В np++ като сложиш курсора върху някоя скоба/кавичка ще ти покаже къде е съответната ѝ (за)отваряща

Пуснах кода и ето какво ми излезе да разбирам ли че грешките са тези които са с червен цвят

PHP:
<?php
                $n = 1;
                $q = mysql_query ('SELECT u.username, SUM(v.views) AS views FROM videos v INNER JOIN users u ON u.user_id = v.user_id GROUP BY v.user_id ORDER BY v.views DESC 5'); 
 
 
                        while($ru = mysql_fetch_array($q)or die(mysql_error()) 
 
 
 
 
 
                                             $qu = mysql_query("SELECT * FROM users WHERE id = '".$ru['user_id']."'");
                            $ru = mysql_fetch_array($qu);
 
 
 
 
        ?>
                        <table width="100%" border="0" cellspacing="2" cellpadding="2">
                                <tr>
                                        <td width="10%" align="center"><big><b><?php echo $n++ ?></b></big></td>
                                        <td width="5%" class="music_video" style="float: none;"><a href="index.php?p=profile&id=<?php echo $ru['id'] ?>" title="<?php echo $r['username'] ?>"><img src="<?php echo $r['avatar'] ?>" width="80" height="60" style="margin: 0;" /></a></td>
                                        <td width="50%"><a href="index.php?p=profile&id=<?php echo $ru['id'] ?>"><b><?php echo $r['username'] ?></b></a></td>
 
                                        <td width="15%" align="center"><big><b><?php echo $r['views'] ?></b></big><br />гледания общо</td>
                                </tr>
                        </table>
                        <div class="line"></div>
        <?php
                }
        ?>
</div>
 

Back
Горе