Autor | Zpráva | ||
---|---|---|---|
jacob Profil |
#1 · Zasláno: 11. 9. 2005, 21:26:24
Mám taký problém: na spracovanie výsledkov z db používam while($row = mysql_fetch_array($ok))... Na localhoste mi to behá v poriadku ale ked to uploadnem na server vypisuje "warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in /mnt/storage/users/q/u/i/quinta/registration.php on line 23". Okrem toho neskôr chcem pouziť header("Location: ... ") ale tam mi to vypise warning "headers already sent on line 23...", na ktorej sa používa iba while($row = mysql_fetch_array($ok)): ... takže čo s tým urobiť? Na localhoste to ide dobre ale na host.sk aj na php5.sk to vypisuje toto.
|
||
Marty Profil |
#2 · Zasláno: 11. 9. 2005, 21:42:43
Zkontroluj, zda máš stejnou databázi na serveru jako doma, zda jsou identické názvy všech proměných.
Header musí být v kódu co nejvýše, nesmí se před jeho vykonáním dělat jakýkoli výstup na stránku (ani include), kdyžtak přidej kód. |
||
jacob Profil |
#3 · Zasláno: 11. 9. 2005, 21:47:12
Include sa počíta ako výstup na stránku? Ja predtým používam include "scripts/mysqlConnect.php"; , môže to byť príčina toho druhého warningu?
Zkontroluj, zda máš stejnou databázi na serveru jako doma Nechápem, čo tým myslíš... :( |
||
Marty Profil |
#4 · Zasláno: 11. 9. 2005, 21:53:28
Include sa počíta ako výstup na stránku? Ja predtým používam include "scripts/mysqlConnect.php"; , môže to byť príčina toho druhého warningu?
Obávám se že ano, alespoň mě includování spojení s databází před přesměrováním nefungovalo. Zkontroluj, zda máš stejnou databázi na serveru jako doma Nechápem, čo tým myslíš... :( No zda třeba nemáš jiné názvy sloupců, doma, než na serveru. |
||
jacob Profil |
#5 · Zasláno: 11. 9. 2005, 21:58:28
No zda třeba nemáš jiné názvy sloupců, doma, než na serveru.
Aha, ale to nie, určite, ja si nechávam generovať SQL z PHPmyAdmin. Obávám se že ano, alespoň mě includování spojení s databází před přesměrováním nefungovalo To by mohlo byť ono, vyskúšam a uvidím. Neviete, či sa podobne správa aj require? |
||
jacob Profil |
#6 · Zasláno: 11. 9. 2005, 22:25:50
V include to nie je, robí to to isté aj keď ho nahradím...
|
||
Marty Profil |
#7 · Zasláno: 11. 9. 2005, 22:32:21
Pak (pokud to je možné) pošli zdrojový kód, jinak lze jen těžko hádat.
|
||
jacob Profil |
#8 · Zasláno: 11. 9. 2005, 22:39:15 · Upravil/a: jacob
No dobre, takže celá táto časť vyzerá takto:
|
||
Kalda Profil * |
#9 · Zasláno: 12. 9. 2005, 01:50:24
Někde se tam dostal špatný SQL dotaz, protože to vypisuje supplied argument is not a valid MySQL result resource
To headers already sent je způsobeno tím, že PHP vypsalo chybové hlášení -> už byl poslán text, takže není možné poslat hlavičky. Nejjednodušší kontrolou je, nechat si vypisovat i SQL dotazy a v nich hledat chybu. |
||
jacob Profil |
#10 · Zasláno: 12. 9. 2005, 15:12:58
Nejjednodušší kontrolou je, nechat si vypisovat i SQL dotazy a v nich hledat chybu.
Ako to mám urobiť? Veď ja tam používam len dva dotazy, a obidva sú vypísané hore... a v nich ja chybu nevidím |
||
Kalda Profil * |
#11 · Zasláno: 12. 9. 2005, 18:04:32
Myslel jsem, nechat si vypisovat postupně vše při průchodech. Např., jestli si tam náhodou někde něco nepřepíšete atd. (i zde není celý kód)
Každopádně po přečetní zdrojového kódu "nechápu": <? $sql = "SELECT surname, nick, mail, icq FROM users"; $ok = mysql_query($sql); // vykonanie poziadavky $right = true; while($row = mysql_fetch_array($ok)): ... ?> Postupně procházíte celou databází řádek po řádku a provádíte porovnání. Jako efektivnější bych viděl vhodný SQL dotaz, který se zeptá, zda existují v databázi příslušná data. Jednak nemusíte mezi SQL a PHP posílat všechna data a jednak ušetříte v PHP čas potřebný k porovnávání. V SQL totiž v nejhorším případě pro porovnání musíte projít všechny řádky (což stejně děláte kvůli výpisu) a obecně při vhodné struktuře a indexech ani není nutné projití všech řádků. |
||
jacob Profil |
#12 · Zasláno: 12. 9. 2005, 18:30:26
Jako efektivnější bych viděl vhodný SQL dotaz, který se zeptá, zda existují v databázi příslušná data
Ak mi napíšete ako na to, kľudne... ja by som to najviac testoval cez mysql_num_rows ale tak by som nezistil, presne ktoré dáta sú zhodné. Ale aj tak to v podstate nerieši môj problém, pretože nechápem, čo na tom vadí... je to síce nevýhodné, ale malo by byť funkčné, nie? |
||
Robotus Profil * |
#13 · Zasláno: 13. 9. 2005, 07:56:08
zkusil bych misto SELECT surname, nick, mail, icq FROM users zadat SELECT * FROM users pokud chyba trva je spatne jmeno tabulky/tabulka vubec neexistuje nebo spatne prihlaseni do mysql pokud chyba zmizla je spatne nazev nekteryho sloupce/sloupec neexistuje ;) pak bych teprv resil data
|
||
Časová prodleva: 3 dny
|
|||
Anonymní Profil * |
#14 · Zasláno: 16. 9. 2005, 14:53:36
Problémem může být verze PHP 5.0.5, poté co jsem ji nainstaloval na lokal nechodí žádný MySQL_Fetch_Array. Více též na hulan.cz.
|
||
jacob Profil |
#15 · Zasláno: 17. 9. 2005, 14:38:34
Robotus
Mal si pravdu, tá tabulka jednoducho neexistovala... myslel som si, že som je vytvoril, ale vznikla tam chyba a nevytvorila sa a nenapadlo mi skontrolovať to :( . Takže túto tému uzamykám, naozaj trápna chyba. |
||
Časová prodleva: 20 let
|
Toto téma je uzamčeno. Odpověď nelze zaslat.
0