Autor | Zpráva | ||
---|---|---|---|
Philber Profil |
#1 · Zasláno: 19. 4. 2009, 21:02:10
Ahoj zkusil sem si napsat takovou věc co ukládá ip uživatelů vloží je do _db a ověřuje jestli tam už nejsou a když tam sou tak jen aktualizuje čas,. asi to není upe košer no, ale budiž...
jenže mi to pořád píše supplied argument is not a valid i když hodnoty se aktualizujou takže to funguje ale furt to hází ten error nevíte kde je chybka. Děkuji toto je výstup: Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in F:\***\***\counter.php on line 12 127.0.0.1 1240166897 <?php // pripojeni k databazi include ('connect.php'); $user_ip = $_SERVER['REMOTE_ADDR']; $user_time = time(); $unikatni = 1; $dotaz = "SELECT ip_ip FROM ip"; $vysledek = mysql_query($dotaz) or die(mysql_error()); while (($radek = mysql_fetch_array($vysledek)) and ($unikatni!=0)) { extract ($radek); if ($user_ip != $ip_ip) { $unikatni = 1; } else { $unikatni = 0; $dotaz = "UPDATE ip SET ip_time = '$user_time' WHERE ip_ip = '$ip_ip'"; $vysledek = mysql_query($dotaz) or die (mysql_error() ); } } if ($unikatni == 1) { $user_id = $ip_id + 1; $dotaz = "INSERT INTO ip (ip_id, ip_ip, ip_time) VALUES ('$user_id', '$user_ip', '$user_time')"; $vysledek = mysql_query($dotaz) or die (mysql_error()); } // tahle funkce funguje // netreba ji venovat pozornost function vypis () { $dotaz = "SELECT * FROM ip"; $vysledek = mysql_query($dotaz) or die(mysql_error()); while ($radek = mysql_fetch_array($vysledek) or die (mysql_error())) { extract ($radek); echo $ip_ip; echo " "; echo "$ip_time"; }} vypis(); ?> |
||
yFang Profil |
#2 · Zasláno: 19. 4. 2009, 21:05:17
Philber
Máš chybu v sql dotazu. |
||
Philber Profil |
#3 · Zasláno: 19. 4. 2009, 21:09:11 · Upravil/a: Philber
yFang hm v tomhle?
$dotaz = "SELECT ip_ip FROM ip"; já to tam nevidím jestli by to nešlo upřesnit, mě to nepřijde špatně. |
||
nightfish Profil |
#4 · Zasláno: 19. 4. 2009, 21:13:44
na řádku 21 si přepisuješ obsah proměnné $vysledek, což zřejmě není dobře
|
||
yFang Profil |
#5 · Zasláno: 19. 4. 2009, 21:19:42
Philber
Prostě v proměnné $vysledek nemáš správný mysql výsledek. Buď je chyba v dotazu, nebo v tom, že si tu proměnnou přepisuješ. |
||
Philber Profil |
#6 · Zasláno: 19. 4. 2009, 21:41:54 · Upravil/a: Philber
yFang pravda, ono se to přepisuje,.. funguje to ale jak dojde ve while v if k false tak se tam provede ten UPDATE a vznikne nový $výsledek (řádek 21) a to není dotaz z databáze ale příkaz k vložení do _db. While cyklus v tu chvilu eště neskončil $unikatni (radek 17)se nastavila na 0, jenže se to musi ešte ve while ověřit a tam je ten problem,.. 1 je
$radek = mysql_fetch_array($vysledek) $unikatni!=0 tedy s tímto na radku 12 while (($unikatni!=0) and ($radek = mysql_fetch_array($vysledek) )) { to bude fungovat normalně xd |
||
AM_ Profil |
#7 · Zasláno: 19. 4. 2009, 22:26:19
Má vůbec nějaký důvod, že výsledek query na řádku 21 a 28 přiřazuješ proměnné $vysledek?
Odpověď: nemá a to je ta chyba. Výsledek UPDATE a INSERT určitě nebudou řádky DB jako u SELECTu. |
||
Philber Profil |
#8 · Zasláno: 19. 4. 2009, 22:31:00
AM_ děkuju za postřeh, máš pravdu to sem si nějak neuvědomil
|
||
Časová prodleva: 15 let
|
Toto téma je uzamčeno. Odpověď nelze zaslat.
0