Autor | Zpráva | ||
---|---|---|---|
zacekjakub Profil * |
#1 · Zasláno: 11. 1. 2009, 12:40:36
Ahoj, potřeboval bych poradit, peru se s tím a ne a ne na to přijít.
Pokud mám dotaz: $data = mysql_query("(SELECT * FROM vylet)"); while (list($id,$id,uzivatele,$id_trasy,$nazev,$datum,$cas_odjezdu,$cas_prijezdu) = mysql_fetch_row($data)){ echo $nazev.$datum; } Funguje to bez problému, ale jakmile za něj na stránku přidám další: $vyberdatprovypsani = mysql_query("(SELECT * FROM itinerar WHERE id_trasy=$id)"); while list($id_trasy,$poradi,$vzdalenost,$misto,$druh_mista,$vyska,$sirka,$delka,$poznamka_mista,$druh_cesty,$znaceni_cyklo,$znaceni_pesi,$cislo_znaceni,$poznamka_cesty) = mysql_fetch_row($vyberdatprovypsani)) { už to nejede a hází mi tyto chyby: Warning: mysql_fetch_row(): supplied argument is not a valid MySQL result resource in /home/free/ic.cz/t/trasy/root/www/trasa.php on line 108 Nevíte prosím kde by mohla být chyba? Dekuji |
||
Alphard Profil |
#2 · Zasláno: 11. 1. 2009, 12:43:01 · Upravil/a: Alphard
chyba je pravděpodobně v dotazu samotném, vypiště si mysql_error()
// ta závorka mi utekla, mám statistickou smůlu, téměř vždy tato chyba znamená chybný dotaz :-( |
||
tiso Profil |
#3 · Zasláno: 11. 1. 2009, 12:48:31 · Upravil/a: tiso
zacekjakub
-chýba ti ( za while -nedoporučuje sa použitie list, ani mysql_fetch_row ale použiť priamo názvy stĺpcov z databázy: while($row=mysql_fetch_assoc($result)){ echo $row['stlpec_nazev'].$row['stlpec_datum']; ... } |
||
zacekjakub Profil * |
#4 · Zasláno: 11. 1. 2009, 13:05:09
Mohu se zeptat proč se nedoporučuje list? Proč tato funkce tedy je?
Tu chybu vážně nemohu najít, přidám krátký kód, nekomentujte prosím strukturu, optimalizuji na konci. :) <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd"> <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en"> <head> <title>Cyklotrasy</title> <meta http-equiv="content-type" content="text/html; charset=cp1250" /> <meta name="description" content="" /> <meta name="keywords" content="" /> <link rel="stylesheet" type="text/css" media="screen" href="style.css" /> <script type="text/javascript" src="lightbox.js"></script> </head> <body> <div id="container"> <div id="head">Prezentační aplikace- cyklotrasy</div> <div id="left_side"><br /> <ul id="navigation"> <li>Menu</li> <?PHP Header("Pragma: no-cache"); $id=$_GET["id"]; // Nadefinujeme proměnné pro přístup $server_db = "*"; $uzivatel_db = "*"; $heslo_db = "*"; ?> <li><a href=vylety.php class=button>Prohlížet výlety</a></li> <li><a href=diskuse.php class=button>Diskuse</a></li> <li><a href=vyhledavani.php class=button>Vyhledávání</a></li> <li><a href=statistiky.php class=button>Statistiky</a></li> <li><a href=prihlaseni.php class=button>Admin</a></li> </ul> </div> <div id="right_side"> <h2>Informace o trase</h2> <div id="content"> <? // Připojíme se k DB $spojeni = MySQL_Connect($server_db, $uzivatel_db, $heslo_db) or die(mysql_error()); mysql_select_db("test"); $spojeni = mysql_query("SET NAMES 'cp1250'"); $data = mysql_query("(SELECT * FROM vylet)"); while (list($id,$id_uzivatele,$id_trasy,$nazev,$datum,$cas_odjezdu,$cas_prijezdu) = mysql_fetch_row($data)){ echo $nazev.$datum; } $mapaaprofil = mysql_query("(SELECT * FROM trasa WHERE id=$id)"); list($id,$nazev,$poznamka,$delka,$nahoru,$dolu,$soubor_mapy,$soubor_profilu) = mysql_fetch_row($mapaaprofil); echo "<a href=obr/$soubor_mapy rel=lightbox><img src=obr/$soubor_mapy width=500 class=mapky></a>"; echo "<a href=obr/$soubor_profilu rel=lightbox><img src=obr/$soubor_profilu width=500 class=mapky></a>"; $vyberdatprovypsani = mysql_query("(SELECT * FROM itinerar WHERE id_trasy=$id)"); ?> <table border=0 style=color:black;> <tr> <td> <? echo " <a href=trasarozs.php?id=$id>Podrobný výpis</a> </td> "; ?> <td></td> </tr> <tr> <td>Vzdálenost</td> <td>Název místa</td> <td>Pozn. místa</td> <td>nad. výška</td> </tr> <? $y=1; while (list($id_trasy,$poradi,$vzdalenost,$misto,$druh_mista,$vyska,$sirka,$delka,$poznamka_mista,$druh_cesty,$znaceni_cyklo,$znaceni_pesi,$cislo_znaceni,$poznamka_cesty) = mysql_fetch_row($vyberdatprovypsani)) { $zacinazavorkou = SubStr ($misto, 0, 1); // vrátí 1. jedenznak if($zacinazavorkou!="("){ if ($y%2==0) echo "<tr bgcolor=grey>"; else echo "<tr bgcolor=darkgrey>"; echo " <td>$vzdalenost</td><td valign=top>"; if($druh_mista!=0){ echo "<img src=obr/piktogramy/misto$druh_mista.gif>"; } echo " $misto</td> <td>$poznamka_mista</td><td> "; echo "$vyska</td> </tr> "; $y++; } } ?> </table> <BR /><BR /><BR /><BR /><BR /><BR /> </div> <div id="footer">Cyklotrasy</div> </div> </div> </body> </html> |
||
sicario Profil |
#5 · Zasláno: 11. 1. 2009, 14:26:02
zacekjakub
Komu neni rady, tomu neni pomoci. Uz jsi udelal to, co radi Alphard? Skript v teto podobe nemuzes nasadit na web. Jakym zpusobem osetrujes treba $id aby mohl obsahovat pouze cislo? A proc neni vhodne pouzivat list? Kdyz se rozhodnes pridat do vyberu dalsi sloupec, musis aktualizovat take zapis list(...) = ... |
||
zacekjakub Profil * |
#6 · Zasláno: 11. 1. 2009, 14:29:17
Ano, co psal Alphard jsem zkoušel, napsalo to to samé co jsem psal už na začátku příspěvku. Dobře, chápu s tím listem, ale to nemá vliv na aktuální chybu! Pokud předám v id číslo, bude to číslo a to mi stačí, bezpečnost zatím neřeším.
|
||
sicario Profil |
#7 · Zasláno: 11. 1. 2009, 21:05:31
zacekjakub
Warning: mysql_fetch_row(): supplied argument is not a valid MySQL result resource in /home/free/ic.cz/t/trasy/root/www/trasa.php on line 108 Toto neni vystupem funkce mysql_error(). Problem bude pravdepodobne v tomto dotazu: $vyberdatprovypsani = mysql_query("(SELECT * FROM itinerar WHERE id_trasy=$id)"); Umisti za nej echo mysql_error() |
||
zacekjakub Profil * |
#8 · Zasláno: 12. 1. 2009, 15:04:46
Díky moc, vyzkouším.
|
||
zacekjakub Profil * |
#9 · Zasláno: 12. 1. 2009, 15:12:55
Zajímavé, hází to
You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ')' at line 1 Warning: mysql_fetch_row(): supplied argument is not a valid MySQL result resource in /home/free/ic.cz/t/trasy/root/www/trasa.php on line 243 Ale dokud tam nepřidám tu část $data = mysql_query("(SELECT * FROM vylet)"); , funguje to bez problému... |
||
kajaman Profil |
#10 · Zasláno: 12. 1. 2009, 16:23:51
$query = "SELECT * FROM itinerar WHERE id_trasy= '" . $id . "'"; $vysledek = MySQL_Query($query); |
||
nightfish Profil |
#11 · Zasláno: 12. 1. 2009, 18:59:10
tiso
„nedoporučuje sa použitie list, ani mysql_fetch_row ale použiť priamo názvy stĺpcov z databázy“ protože to tu nezaznívá poprvé, rád bych se zeptal, kdo to doporučuje a proč? |
||
Alphard Profil |
#12 · Zasláno: 12. 1. 2009, 19:19:27
„protože to tu nezaznívá poprvé, rád bych se zeptal, kdo to doporučuje a proč?“
ačkoliv je adresátem tiso, myslím, že je to přinejmenším zbytečné kopírování proměnných a v případě změny nebo záměny několika sloupců v rozsáhlejší aplikaci taky důvod k bezesné noci |
||
tiso Profil |
#13 · Zasláno: 12. 1. 2009, 21:14:58
nightfish - tak to "nedoporučuje" som nenašiel, asi som si len spojil archaická=nedoporučovaná.
Riešenia s while($row=$mysql_fetch_assoc($result)) a foreach($array as $key => $val) považujem za programátorsky čistejšie, mám lepší prehľad čo kde mám, nezaskočí ma zmena poradia stĺpcov. |
||
Mastodont Profil |
#14 · Zasláno: 12. 1. 2009, 21:24:40 · Upravil/a: Mastodont
Mně se list taky nelíbí, kromě toho je k dispozici extract.
Co se ale určitě nedoporučuje, je hvězdička za SELECT a tu vidím všude :-(( |
||
Časová prodleva: 21 dní
|
|||
Histler Profil * |
#15 · Zasláno: 2. 2. 2009, 19:45:20
Caw mam stejny problem,
nemuze to byt tim že si mysql_fetch_row() muze obsahovat vysledky pouze z jednoho dotazu? Kdysi jsem v jedny knizce cet že by se to melo nejak vynulovat... Myslite ze to je mozny?? |
||
djlj Profil |
#16 · Zasláno: 3. 2. 2009, 03:06:41
Histler
Spíš máš nějakou chybu v SQL dotazu. |
||
AM_ Profil |
#17 · Zasláno: 3. 2. 2009, 08:13:55
Histler
Jak se ti povedlo narvat do mysql_fetch_row vic dotazu? :) tam bych asi hledal zdroj problemu, pochopitelne ze nemuzes mit jeden radek vysledku z vic dotazu soucasne... |
||
Časová prodleva: 3 dny
|
|||
Aladyreg Profil * |
#18 · Zasláno: 5. 2. 2009, 21:07:16
Čau, mám stejnej problém jako zacekjakub.......když přidám za $vypsat_clanky=mysql_query("SELECT nazev, popis FROM vtipy ORDER by id DESC LIMIT $vynechat,10;"); ----echo mysql_error(); nahodí mi to : You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '-10,10' at line 1
.Nevíte prosím někdo co s tím? díky moc za radu |
||
AM_ Profil |
#19 · Zasláno: 5. 2. 2009, 21:10:52
já myslím, že '-10,10' mluví za vše - opravdu se snažíš začít od mínus desátého prvku?
|
||
Aladyreg Profil * |
#20 · Zasláno: 5. 2. 2009, 21:13:12
Tady je celý ten tag:
if ($stranka=="") { $stranka=1; $vynechat=0; } else { $vynechat=$stranka*10-10; } $vypsat_clanky=mysql_query("SELECT nazev, popis FROM vtipy ORDER by id DESC LIMIT $vynechat,10;");echo mysql_error(); while (list($nazev, $popis) = mysql_fetch_row($vypsat_clanky)) { echo "Název článku: $nazev<br> Text: $popis"; } $pocet_radku=mysql_query("SELECT COUNT(*) AS nazev FROM vtipy"); $pocet_radku=mysql_fetch_array($pocet_radku); $pocet_stran=ceil($pocet_stran=$pocet_radku["nazev"]/10); $i=0; while ($i<$pocet_stran) {$i++; echo ?> <a href="index.php?stranka=$i"><? echo "$i"?></a> <? ;}?> |
||
Aladyreg Profil * |
#21 · Zasláno: 5. 2. 2009, 21:14:04
Ne, koukni se na ten script a uvidíš
|
||
Aladyreg Profil * |
#22 · Zasláno: 5. 2. 2009, 21:14:34
Ne, koukni se na ten script at to vidis cele(viz predchozi clanek)
|
||
Aladyreg Profil * |
#23 · Zasláno: 6. 2. 2009, 20:27:26
prosím pomozte mi
|
||
AM_ Profil |
#24 · Zasláno: 7. 2. 2009, 12:06:39
ale my už jsme ti pomohli... přečti si tu svojí chybu a zjistíš, že se snažíš začít od -10tého prvku. Kde se ti tam bere -10, na to už přijdeš sám, ne?
|
||
Časová prodleva: 15 let
|
0