Autor | Zpráva | ||
---|---|---|---|
jurinko2000 Profil |
#1 · Zasláno: 4. 11. 2014, 21:55:05
Warning: mysqli_fetch_array() expects parameter 1 to be mysqli_result, boolean given in D:\DOKUMENTY\PLOCHA\Juro\projekt\Eshop\wamp\www\Product.php on line 45
vypisuje mi to a nwm si s tým radi pls HELP :) tu je kod :) <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <?php include "mysql_connect.php"; include "mysql.php"; include "head.php"; ?> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <title>Home</title> <style> #products{ width: 400px; margin: 0 auto; margin-top: 20px; height: auto; background-color: #FFF; } #product1{ width: 50px; margin-left: 20px; margin-top: 20px; height: auto; background-color: #FFF; } $sql{ border:solid black 4px; } </style> </head> <body style="background-image:url(background.jpg); background-attachment:fixed; background-position:center; background-repeat:no-repeat;"> <div id="products"> <div id="product1"> <?php $sql="SELECT * FROM products ORDER BY name ASC"; $result=mysqli_query($mysql_connect, $sql); while($row=mysqli_fetch_array( $result, MYSQLI_BOTH)); ?> <table> <tr> <td><H2><?php $row["name"];?></H2></td> </tr> </table> </div> </div> </body> </html> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <?php include "MySQL.php"; ?> </head> <body> <?php mysqli_select_db($mysql_connect, $mysql_db) or die("ZLE db"); ?> </body> </html> <?Php $mysql_id="localhost"; $mysql_name="root"; $mysql_pass=""; $mysql_db= "eshop"; $mysql_connect= mysqli_connect($mysql_id, $mysql_name, $mysql_pass) or die("ZLE connect"); ?> |
||
Joker Profil |
#2 · Zasláno: 4. 11. 2014, 22:26:19
jurinko2000:
Klasický problém, nepočítáte s tím, že mysqli_query může kromě výsledku dotazu (v případě chyby) vrátit i false. |
||
Davex Profil |
#3 · Zasláno: 4. 11. 2014, 22:29:48
|
||
jurinko2000 Profil |
#4 · Zasláno: 4. 11. 2014, 22:30:18
a riesenie?? :P
|
||
Davex Profil |
#5 · Zasláno: 4. 11. 2014, 22:36:34
jurinko2000:
„a riesenie??“ Na základě sdělených informací zjistit chybu, najít její příčinu a tu opravit. |
||
jurinko2000 Profil |
#6 · Zasláno: 4. 11. 2014, 22:41:42
<?php $sql="SELECT * FROM products ORDER BY name ASC"; $result=mysqli_query($mysql_connect, $sql); while($row=mysqli_fetch_array( $result, MYSQLI_BOTH)); if (!$result) { echo "<br>\n", htmlspecialchars($sql, ENT_QUOTES), "<br>\n", mysql_error(), "<br>\n"; } ?> +SELECT * FROM products ORDER BY name ASC |
||
Tori Profil |
Řádky 5-7 musí být ještě před cyklem while (v případě chyby se cyklus vůbec neprovede).
|
||
jurinko2000 Profil |
#8 · Zasláno: 4. 11. 2014, 22:44:16
v tom pripade mi to vypise to iste ale opacne :(
|
||
lionel messi Profil |
jurinko2000:
„v tom pripade mi to vypise to iste ale opacne :(“ Nie je chyba niekde v pripojení? Skús po connecte zavolať: if (!$mysql_connect) { die(mysqli_error($mysql_connect)); } |
||
Joker Profil |
#10 · Zasláno: 4. 11. 2014, 22:54:16
lionel messi [#9]:
K tomu jen jedna poznámka, ostrá aplikace by měla na chybu reagovat nějak rozumněji, než vypsat chybovou hlášku návštěvníkovi. |
||
lionel messi Profil |
Jasné, je to pripojením. Riadok 6 v tvojom úplne prvom príspevku (súbor mysql_connect.php):
$mysql_connect= mysqli_connect($mysql_id, $mysql_name, $mysql_pass) or die("ZLE connect"); mysqli_connect má 4 argumenty (server, login, heslo, názov db), nie tri ako stará mysql_connect. |
||
jurinko2000 Profil |
#12 · Zasláno: 4. 11. 2014, 22:56:58
tak doplnil som tam nwm co :D ale uz mi to nic nepise ale potrebujem zasa vyriesit ze mi z databazi nevipisuje :P
<div id="product1"> <?php mysqli_select_db($mysql_connect, $mysql_db) or die("ZLE db"); if (!$mysql_connect) { die(mysqli_error($mysql_connect)); } $sql="SELECT * FROM products ORDER BY name ASC"; $result=mysqli_query($mysql_connect, $sql); if (!$result) { echo "<br>\n", htmlspecialchars($sql, ENT_QUOTES), "<br>\n", mysql_error(), "<br>\n"; } while($row=mysqli_fetch_array( $result, MYSQLI_BOTH)); ?> <table> <tr> <td><H2><?php echo $row["Name"]?></H2></td> </tr> </table> </div> |
||
lionel messi Profil |
#13 · Zasláno: 4. 11. 2014, 23:04:27
Chýba zátvorka:
while($row=mysqli_fetch_array( $result, MYSQLI_BOTH)); { ?> <?php } ?> |
||
jurinko2000 Profil |
#14 · Zasláno: 4. 11. 2014, 23:08:45
while($row=mysqli_fetch_array( $result, MYSQLI_BOTH)); {?> <table> <tr> <td><H2><?php echo $row["Name"]?></H2></td> </tr> </table> <?php } ?> |
||
Tori Profil |
Možná by bylo fajn si trochu přečíst o cyklech, jak fungují a jak se zapisují v kódu, ať to nemusíte zkoušet naslepo: http://pehapko.cz/zakladni-kurz/11-cykly
|
||
Davex Profil |
jurinko2000:
Používáš MySQLi, takže by bylo dobré používat i vhodné funkce z tohoto rozšíření. Za dotazem má být: $result = mysqli_query($mysql_connect, $sql); if (!$result) { echo "<br>\n", htmlspecialchars($sql, ENT_QUOTES), "<br>\n", mysqli_error($mysql_connect), "<br>\n"; } Případně za připojením k databázi by mohlo být: $mysql_connect = mysqli_connect($mysql_id, $mysql_name, $mysql_pass, $mysql_db); if (!$mysql_connect) { die(mysqli_connect_error()); } Pokud je účelem následujícího řádku, který naprázdno prochází všechny vrácené řádky z databáze, najít poslední řádek ve výsledku dotazu, tak doporučuji volit vhodnější prostředek, a to přímo položením vhodného dotazu databázi. while($row=mysqli_fetch_array( $result, MYSQLI_BOTH)); |
||
jurinko2000 Profil |
#17 · Zasláno: 5. 11. 2014, 15:19:25
prosim zrozumitelnejsie som zaciatocnim :P
|
||
Časová prodleva: 9 let
|
0