daGrevis Posted May 29, 2010 Report Share Posted May 29, 2010 Sveiki, Veidoju tādu kā blogu jeb ierakstu sistēmu un nu beidzot - pirmā kļūda! =) Nesaprotu, kas PHP nepatīk... =/ Kļūdas paziņojums: Warning: mysql_result() [function.mysql-result]: Unable to jump to row 0 on MySQL result index 12 in C:\xampp\htdocs\bliss-1.0.0\includes\functions.php on line 252 Cikls: http://paste.php.lv/7bda0fa3da3ef0d5cec932d612327205?lang=php P.S. Pirmais ieraksts nemet kļūdas - otrais un tā tālāk gan. Attiecīgā funkcija: http://paste.php.lv/21443f7e0efb9a6f453322225554797b?lang=php Atvainojos, ka viena līnija ir šausmīgi gara... =D Vēl jāizdomā, kā to saīsināt! =) Tikai koncepts! =D Quote Link to comment Share on other sites More sharing options...
briedis Posted May 29, 2010 Report Share Posted May 29, 2010 (edited) or die(mysql_error()) Un kāpēc tos 4 echo ar garajām rindām nevar pārrakstīt šādi?? echo " <h4>» {$row['title']} </h4> <p>{$row['content']}</p> <p style='font-size: 11px; padding-top: 5px;'> Posted on <em>" . date('m/d/Y, H:i:s', $row['time']) . "</em>, by <span style='color: " . get__level_color(get__level($row['ID'])) . "; font-weight: bold;'>" . get__username($row['author']) . "</span>. </p> <br /> "; Edited May 29, 2010 by briedis Quote Link to comment Share on other sites More sharing options...
daGrevis Posted May 29, 2010 Author Report Share Posted May 29, 2010 O, tā jau ir labāk! =) Tikai tāpat kļūda.... Warning: mysql_result() [function.mysql-result]: Unable to jump to row 0 on MySQL result index 10 in C:\xampp\htdocs\bliss-1.0.0\includes\functions.php on line 252 Jaunais cikls: http://paste.php.lv/61b3b0fabaac1c7a610451256dd88d74?lang=php Funkcija ar kļūdas izmešanu: http://paste.php.lv/c2446b9ce140498f604a0b9e6e340e22?lang=php Quote Link to comment Share on other sites More sharing options...
codez Posted May 29, 2010 Report Share Posted May 29, 2010 Visdrīzāk vaina ir tajā, ka tu ciklā apstrādā viena kverija atgrieztos datus un pa vidu izsauc citus kverijus. Bet tev vajag pārdomāt koda struktūru - pati ideja, ka tu ciklā izsauc n līdzīgus kverijus jau norāda uz to, ka koda struktūra ir tālu no optimālās. Izskatās, ka pamatkverijā ir vienkārši vajadzīgs JOIN-s. Quote Link to comment Share on other sites More sharing options...
briedis Posted May 29, 2010 Report Share Posted May 29, 2010 Protams, jo mysql_result neģenerē mysql_error, to dara mysql_query... kustini smadzeni! Quote Link to comment Share on other sites More sharing options...
Леший Posted May 29, 2010 Report Share Posted May 29, 2010 (edited) Bik papildināšu iepriekšēja oratora pareizo atbildi: mysql_result neaiztiek MySQL, tā funkcija ir domāta mysql rezultāta pārveidošanai veidā, kas būtu saprotams PHP. Teorētiski, šo funkciju var izsaukt, nepieslēdzoties pie MySQL. Tieši ar SQL darbojās funkcija mysql_query, un, protams, tieši šī funkcija var atgriezt mysql_error. Edited May 29, 2010 by Леший Quote Link to comment Share on other sites More sharing options...
daGrevis Posted May 29, 2010 Author Report Share Posted May 29, 2010 Ok, es jau cenšos domāt, briedi, nevajag bakstīt sejā, ka nesanāk... Pats pamanīju! =D Tātad kļūda tiek mesta, jo cikla laikā tiek izsaukts cits kverijs. To dara funkcija get__level(). Risinājumi? JOIN's? (pirmo reizi ar tādu saskaros) Cita koda struktūra? Kā tas izpaustos? (būtu pateicīgs par piemēru) Quote Link to comment Share on other sites More sharing options...
codez Posted May 29, 2010 Report Share Posted May 29, 2010 tad ieliec vismaz kveriju, kurš ir pamatu while ciklam Quote Link to comment Share on other sites More sharing options...
daGrevis Posted May 29, 2010 Author Report Share Posted May 29, 2010 $query = mysql_query(" SELECT * FROM `entries` ORDER BY `ID` DESC LIMIT 5 "); Quote Link to comment Share on other sites More sharing options...
xcwcx Posted May 29, 2010 Report Share Posted May 29, 2010 (edited) Funkciju get__level() izsauc vienreiz pirms cikla un atgriezto vērtību pieglabā mainīgajā, kuru pēc tam izmanto vajadzīgajās vietās. Nav jēga vienu un to pašu vērtību pieprasīt tik daudzas reizes. + kāda nozīme ir diviem underscoriem ? Edited May 29, 2010 by xcwcx Quote Link to comment Share on other sites More sharing options...
daGrevis Posted May 29, 2010 Author Report Share Posted May 29, 2010 (edited) Funkciju get__level() izsauc vienreiz pirms cikla un atgriezto vērtību pieglabā mainīgajā, kuru pēc tam izmanto vajadzīgajās vietās. Nav jēga vienu un to pašu vērtību pieprasīt tik daudzas reizes. + kāda nozīme ir diviem underscoriem ? Nu, bet katru reizi jau lietotājs nav Jānītis. Katru reizi lietotāji mainās, piemēram, vēlāk ir Pēterīts. =( Apakš-svītrām? No tehniskā viedokļa nekāda. Edited May 29, 2010 by daGrevis Quote Link to comment Share on other sites More sharing options...
daGrevis Posted May 29, 2010 Author Report Share Posted May 29, 2010 Neviens nespēj palīdzēt? =/ Es neesmu drošs, ka tikšu ar JOIN'iem pats galā. Quote Link to comment Share on other sites More sharing options...
php newbie Posted May 29, 2010 Report Share Posted May 29, 2010 tevis dotas informācijas bišk pamaz. ieposto tabulu struktūru un ko gribi panākt. Quote Link to comment Share on other sites More sharing options...
daGrevis Posted May 29, 2010 Author Report Share Posted May 29, 2010 CREATE TABLE `entries` ( `ID` int(8) NOT NULL auto_increment, `title` varchar(255) NOT NULL, `content` text NOT NULL, `author` int(8) NOT NULL, `time` int(10) NOT NULL, PRIMARY KEY (`ID`) ); function get__level_color($level) { switch($level) { case 1: return 'black'; case 2: return '#cc6600'; case 3: return '#009900'; case 4: return '#800000'; default: return '(UNKNOWN)'; } } function get__level($ID) { $query = mysql_query(" SELECT `level` FROM `users` WHERE `ID`='$ID' ") or exit(mysql_error()); return mysql_result($query, 0); } Nu man vajag, lai autora niks būtu tādā krāsā, kāda atbilst viņa pašreizējam līmenim/statusam, piemēram, admins - sarkanīgs. Ja nepieciešama vēl kāda infa - lūdzu sakiet! =) Quote Link to comment Share on other sites More sharing options...
xcwcx Posted May 29, 2010 Report Share Posted May 29, 2010 Sorī, nepaskatījos, kam tev tā funkcija domāta. SELECT * FROM `entries` LEFT JOIN `users` ON (users.ID = entries.author) Pārējo pieliec klāt pats. Quote Link to comment Share on other sites More sharing options...
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.