Autor Zpráva
jurinko2000
Profil
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");
?>
je tam zakladny kod a kody do databaze :) predom dik :)
Joker
Profil
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
Viz Nejčastější potíže s PHP (FAQ) » Warning mysql_fetch_array() (nebo jiná MySQL funkce): supplied argument is not a valid MySQL result resource…
jurinko2000
Profil
a riesenie?? :P
Davex
Profil
jurinko2000:
a riesenie??
Na základě sdělených informací zjistit chybu, najít její příčinu a tu opravit.
jurinko2000
Profil
                            <?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";
                            }
                            ?>
napisal som tam toto :P nwm ci som to dobre pochopil a vypisalo mi to tu 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 43
+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
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
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
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>
mam tam toto a stranka je prazdna :P
lionel messi
Profil
Chýba zátvorka:
 while($row=mysqli_fetch_array( $result, MYSQLI_BOTH));
    {                          ?>
A na úplný koniec vypisovania tabuľky dodaj:
<?php
}
?>
jurinko2000
Profil
                            while($row=mysqli_fetch_array( $result, MYSQLI_BOTH));
                            {?>
                            <table>
                                <tr>
                                <td><H2><?php echo $row["Name"]?></H2></td>
                                </tr>
                            </table>
                            <?php
                            }
                            ?>
ak si myslel takto tak to stále nejde :(
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
prosim zrozumitelnejsie som zaciatocnim :P

Vaše odpověď

Mohlo by se hodit


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm: