Ik loop weer tegen de volgende melding aan:

Warning: mysqli_fetch_assoc() expects parameter 1 to be mysqli_result, boolean given in C:\USB WebServer\root\Youtube9\toon.php on line 77

Die hadden we al een keer. Iemand die me deze functie kan uitleggen? (En mogelijke oplossingen heeft)
Code

<?php

include ('./connect.php');
if(isset($_POST['submit']))
{ 
    $username = $_POST['username'];
    $mobile = $_POST['mobile'];
    $image = $_FILES['file'];
    //echo $username;
    //echo "<br>";
    //echo $mobile;
    //echo "<br>";
    //print_r($image);

    $imagefilename=$image['name'];
    //print_r($imagefilename);
    //echo "<br>";
    $imagefileerror=$image['error'];
    //print_r($imagefileerror);
    //echo "<br>";
    $imagefiletemp=$image['tmp_name'];
    //print_r($imagefiletemp);
    //echo "<br>";

    $filaname_seperate=explode('.', $imagefilename);
    //print_r($filaname_seperate);
    $file_extension=strtolower(end($filaname_seperate));
    //print_r($file_extension);

    $extension=array('jpeg', 'jpg', 'png');
    if(in_array($file_extension,$extension))
    {
        $upload_image='images/'.$imagefilename;
        move_uploaded_file($imagefiletemp, $upload_image);
        $sql = "INSERT INTO `registration` (name, mobile, image) VALUES ('$username','$mobile', '$upload_image')";
       // $sql = "INSERT INTO MyGuests (firstname, lastname, email) VALUES ('John', 'Doe', '[email protected]')";
        $result=mysqli_query($con, $sql);
        if($result)
        {
            echo '<div class="alert alert-success" role="alert"><strong>Succesfully </strong>Data inserted succesfully</div>';
        }
        else
        {
            die(mysqli_error($con));
        }
        
    }

}
?>




            <?php 

            $sql = "SELECT * FROM 'registration'";
            $result = mysqli_query($con, $sql);
            while($row = mysqli_fetch_assoc($result))
            {
                echo '
                <tr>
                <td>'.$id.'</td>
                <td>'.$name.'</td>
                <td>'.$image.'</td>
            </tr>';
            }
            
           ?>

Waarom pas je de eerste keer netjes controle op je query toe (eerste blok, lijn 38), terwijl je in je tweede blok (lijn 4) dit niet doet?


De bedoeling is al volgt:

Controleer of de query fout is of anders uitgevoerd kan worden:
Indien dit false geeft: Geeft een error met echo mysqli_error($con)
Indien dit anders geen false geeft (een resource om precies te zijn), ga verder met je data ophalen, en ga aan de slag met mysqli_fetch_assoc(). Je kan eventueel nog eerst met mysqli_num_rows() kijken of het record bestaat.

Als je het op deze logische manier je queries opbouwt, dan kom je nooit voor opvolgende verrassingen te staan.
Hallo na wat weggehaald te hebben krijg ik het volgende:

mysqli_result Object ( [current_field] => 0 [field_count] => 4 [lengths] => [num_rows] => 8 [type] => 0 )

De code




<?php

include ('./connect.php');
if(isset($_POST['submit']))
{ 
    $username = $_POST['username'];
    $mobile = $_POST['mobile'];
    $image = $_FILES['file'];
    //echo $username;
    //echo "<br>";
    //echo $mobile;
    //echo "<br>";
    //print_r($image);

    $imagefilename=$image['name'];
    //print_r($imagefilename);
    //echo "<br>";
    $imagefileerror=$image['error'];
    //print_r($imagefileerror);
    //echo "<br>";
    $imagefiletemp=$image['tmp_name'];
    //print_r($imagefiletemp);
    //echo "<br>";

    $filaname_seperate=explode('.', $imagefilename);
    //print_r($filaname_seperate);
    $file_extension=strtolower(end($filaname_seperate));
    //print_r($file_extension);

    $extension=array('jpeg', 'jpg', 'png');
    if(in_array($file_extension,$extension))
    {
        $upload_image='images/'.$imagefilename;
        move_uploaded_file($imagefiletemp, $upload_image);
        $sql = "INSERT INTO `registration` (name, mobile, image) VALUES ('$username','$mobile', '$upload_image')";
       // $sql = "INSERT INTO MyGuests (firstname, lastname, email) VALUES ('John', 'Doe', '[email protected]')";
        $result=mysqli_query($con, $sql);
        if($result)
        {
            echo '<div class="alert alert-success" role="alert"><strong>Succesfully </strong>Data inserted succesfully</div>';
        }
        else
        {
            die(mysqli_error($con));
        }
        
    }

}
?>
            <?php 

            $sql = 'SELECT * FROM registration ORDER BY ID DESC';
           // print_r($sql);
            $result = mysqli_query($con, $sql);
            print_r ($result);
            while($row = mysqli_fetch_assoc($result))
           /*  {
               echo '
                <tr>
                <td>'.$id.'</td>
                <td>'.$name.'</td>
                <td>'.$image.'</td>
            </tr>';
            }
            */
           ?>



Maar wat is de oplossing?

Zie mijn bericht net boven je die je bericht kruisde. ;-)

Met het verwijderen van die quotes om je tabelnaam zal het denk ik wel moeten werken. Maar zorg gewoon voor goede logica die je systematisch toevoegt.
Ik heb het bijna!


<?php

include ('./connect.php');
if(isset($_POST['submit']))
{ 
    $username = $_POST['username'];
    $mobile = $_POST['mobile'];
    $image = $_FILES['file'];
    //echo $username;
    //echo "<br>";
    //echo $mobile;
    //echo "<br>";
    //print_r($image);

    $imagefilename=$image['name'];
    //print_r($imagefilename);
    //echo "<br>";
    $imagefileerror=$image['error'];
    //print_r($imagefileerror);
    //echo "<br>";
    $imagefiletemp=$image['tmp_name'];
    //print_r($imagefiletemp);
    //echo "<br>";

    $filaname_seperate=explode('.', $imagefilename);
    //print_r($filaname_seperate);
    $file_extension=strtolower(end($filaname_seperate));
    //print_r($file_extension);

    $extension=array('jpeg', 'jpg', 'png');
    if(in_array($file_extension,$extension))
    {
        $upload_image='images/'.$imagefilename;
        move_uploaded_file($imagefiletemp, $upload_image);
        $sql = "INSERT INTO `registration` (name, mobile, image) VALUES ('$username','$mobile', '$upload_image')";
       // $sql = "INSERT INTO MyGuests (firstname, lastname, email) VALUES ('John', 'Doe', '[email protected]')";
        $result=mysqli_query($con, $sql);
        if($result)
        {
            echo '<div class="alert alert-success" role="alert"><strong>Succesfully </strong>Data inserted succesfully</div>';
        }
        else
        {
            die(mysqli_error($con));
        }
        
    }

}
?>
    

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Display Data</title>
    <link href="https://cdn.jsdelivr.net/npm/[email protected]/dist/css/bootstrap.min.css" rel="stylesheet">
<body>
   <h1 class = "text-center my-4">User Data</h1>
   <dic class= "container mt-5 flex justify-content-center"></dic>
        <center><table class="table table-bordered w-50">
        <thead>
        <tr>
            <th scope="col">sl no</th>
            <th scope="col">Username</th>
            <th scope="col">Image</th>
        </tr>
        </thead>
        <tbody>
            <?php 

            $sql = 'SELECT * FROM registration ORDER BY ID ASC';
           // print_r($sql);
           $result = mysqli_query( $con, $sql);
           //print_r($result);
            while($row = mysqli_fetch_assoc($result))

            {
            $id=$row['id'];
            $name=$row['name'];
            $image=$row['image'];

               echo '
                <tr>
                <td>'.$id.'</td>
                <td>'.$name.'</td>
                <td><img src='.$image.'/></td>
            </tr>';
            }
            
           ?>

        </tbody>
        </table></center>
</body>
</html>


$result was niet goed! Daarvoor foutmeldingen. Echter hij toont mijn plaatjes nog steeds niet

Zie bijgaand:

https://ibb.co/3Wpx64W
https://ibb.co/bdq3tx0

Wat doe ik nog niet goed?


Tja, als je nog steeds niet zoals 5 keer gezegd is controleert op je $result.

Anyway, check het pad naar de afbeelding eens .
Als ik de code in de ontwikkelaarsmodus bekijk dan zie ik dat er een . aan het einde wordt toegevoegd? Moet die weg? en hoe doe je dat dan?


 <tbody>
            
                <tr>
                <td>1</td>
                <td>ed</td>
                <td><img src=images/Arien.png/></td>
            </tr>
                <tr>
                <td>2</td>
                <td>ed</td>
                <td><img src=images/Arien.png/></td>
            </tr>
                <tr>
                <td>3</td>
                <td>ed</td>
                <td><img src=images/Arien5.png/></td>
            </tr>
                <tr>
                <td>4</td>
                <td>ed</td>
                <td><img src=images/Arien5.png/></td>
            </tr>
                <tr>
                <td>5</td>
                <td>ed</td>
                <td><img src=images/Arien5.png/></td>
            </tr>
                <tr>
                <td>6</td>
                <td>ed</td>
                <td><img src=images/Arien5.png/></td>
            </tr>
                <tr>
                <td>7</td>
                <td>ed</td>
                <td><img src=images/Arien5.png/></td>
            </tr>
                <tr>
                <td>8</td>
                <td>ED</td>
                <td><img src=images/Arien5.png/></td>
            </tr>


De code tot nu toe

[code]
<?php

include ('./connect.php');
if(isset($_POST['submit']))
{
$username = $_POST['username'];
$mobile = $_POST['mobile'];
$image = $_FILES['file'];
//echo $username;
//echo "<br>";
//echo $mobile;
//echo "<br>";
//print_r($image);

$imagefilename=$image['name'];
//print_r($imagefilename);
//echo "<br>";
$imagefileerror=$image['error'];
//print_r($imagefileerror);
//echo "<br>";
$imagefiletemp=$image['tmp_name'];
//print_r($imagefiletemp);
//echo "<br>";

$filaname_seperate=explode('.', $imagefilename);
//print_r($filaname_seperate);
$file_extension=strtolower(end($filaname_seperate));
//print_r($file_extension);

$extension=array('jpeg', 'jpg', 'png');
if(in_array($file_extension,$extension))
{
$upload_image='images/'.$imagefilename;
move_uploaded_file($imagefiletemp, $upload_image);
$sql = "INSERT INTO `registration` (name, mobile, image) VALUES ('$username','$mobile', '$upload_image')";
// $sql = "INSERT INTO MyGuests (firstname, lastname, email) VALUES ('John', 'Doe', '[email protected]')";
$result=mysqli_query($con, $sql);
if($result)
{
echo '<div class="alert alert-success" role="alert"><strong>Succesfully </strong>Data inserted succesfully</div>';
}
else
{
die(mysqli_error($con));
}

}

}
?>


<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Display Data</title>
<link href="https://cdn.jsdelivr.net/npm/[email protected]/dist/css/bootstrap.min.css" rel="stylesheet">
<body>
<h1 class = "text-center my-4">User Data</h1>
<dic class= "container mt-5 flex justify-content-center"></dic>
<center><table class="table table-bordered w-50">
<thead>
<tr>
<th scope="col">sl no</th>
<th scope="col">Username</th>
<th scope="col">Image</th>
</tr>
</thead>
<tbody>
<?php

$sql = 'SELECT * FROM registration ORDER BY ID ASC';
// print_r($sql);
$result = mysqli_query( $con, $sql);
//print_r($result);
while($row = mysqli_fetch_assoc($result))

{
$id=$row['id'];
$name=$row['name'];
$image=$row['image'];

echo '
<tr>
<td>'.$id.'</td>
<td>'.$name.'</td>
<td><img src='.$image.'/></td>
</tr>';
}

?>

</tbody>
</table></center>
</body>
</html>
[code]

@ Arien is er ook een aparte code om de |HTML beter zichtbaar te krijgen?
Probeer dit eens.

<img src="'.$image.'"/>
Dat werkt!

Complete code:



<?php

include ('./connect.php');
if(isset($_POST['submit']))
{ 
    $username = $_POST['username'];
    $mobile = $_POST['mobile'];
    $image = $_FILES['file'];
    //echo $username;
    //echo "<br>";
    //echo $mobile;
    //echo "<br>";
    //print_r($image);

    $imagefilename=$image['name'];
    //print_r($imagefilename);
    //echo "<br>";
    $imagefileerror=$image['error'];
    //print_r($imagefileerror);
    //echo "<br>";
    $imagefiletemp=$image['tmp_name'];
    //print_r($imagefiletemp);
    //echo "<br>";

    $filaname_seperate=explode('.', $imagefilename);
    //print_r($filaname_seperate);
    $file_extension=strtolower(end($filaname_seperate));
    //print_r($file_extension);

    $extension=array('jpeg', 'jpg', 'png');
    if(in_array($file_extension,$extension))
    {
        $upload_image='images/'.$imagefilename;
        move_uploaded_file($imagefiletemp, $upload_image);
        $sql = "INSERT INTO `registration` (name, mobile, image) VALUES ('$username','$mobile', '$upload_image')";
       // $sql = "INSERT INTO MyGuests (firstname, lastname, email) VALUES ('John', 'Doe', '[email protected]')";
        $result=mysqli_query($con, $sql);
        if($result)
        {
            echo '<div class="alert alert-success" role="alert"><strong>Succesfully </strong>Data inserted succesfully</div>';
        }
        else
        {
            die(mysqli_error($con));
        }
        
    }

}
?>
    

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Display Data</title>
    <link href="https://cdn.jsdelivr.net/npm/[email protected]/dist/css/bootstrap.min.css" rel="stylesheet">
<body>
   <h1 class = "text-center my-4">User Data</h1>
   <dic class= "container mt-5 flex justify-content-center"></dic>
        <center><table class="table table-bordered w-50">
        <thead>
        <tr>
            <th scope="col">sl no</th>
            <th scope="col">Username</th>
            <th scope="col">Image</th>
        </tr>
        </thead>
        <tbody>
            <?php 

            $sql = 'SELECT * FROM registration ORDER BY ID ASC';
           // print_r($sql);
           $result = mysqli_query( $con, $sql);
           //print_r($result);
            while($row = mysqli_fetch_assoc($result))

            {
            $id=$row['id'];
            $name=$row['name'];
            $image=$row['image'];

               echo '
                <tr>
                <td>'.$id.'</td>
                <td>'.$name.'</td>
                <td><img src="'.$image.'"/></td>
            </tr>';
            }
            
           ?>

        </tbody>
        </table></center>
</body>
</html>


Reageren