Probleem met mysqli_fetch_assoc() expects parameter 1 to be mysqli_result, boolean given in

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Full Stack Developer-/ in (w/m/d) in Vollzeit

Wer sind wir? agriportance GmbH ist ein junges Start-Up Unternehmen und die Plattform für den erneuerbaren Treibstoff Biomethan/Bio-LNG mit Sitz in Münster. Als solche vermitteln wir Biomethan von landwirtschaftlichen geprägten Produzenten an Abnehmer aus dem Energiesektor und begleiten die notwendige Nachhaltigkeitszertifizierung. Da die Nachfrage nach Biomethan immer weiter steigen wird, sehen wir uns als Zukunftsorientierter und spannender Arbeitsgeber. Für weitere Informationen schau dir gerne unsere Website an: https://agriportance.com Zur Vergrößerung unseres Teams suchen wir zum nächstmöglichen Zeitpunkt einen engagierten Full Stack Developer-/ in (w/m/d) in Vollzeit Unser Team sucht sowohl Berufseinsteiger als auch erfahrene Mitarbeiter, denn jeder findet bei agriportance

Bekijk vacature »

Pagina: 1 2 3 volgende »

Ed Jeurissen

Ed Jeurissen

14/05/2022 18:53:35
Quote Anchor link
Ik ben bezig met het pagineren van paignas. Ik wil uiteindelijk meerder pdfs in een php bestand hebben zodat ik doorheen kan bladeren

Het volgende probleem treedt op:

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

Code die ik tot nog toe heb:

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
<?php

require_once('config.php');
$query = "SELECT * FROM pagination";
$result = mysqli_query($con, $query);

?>


<!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>Pagination in PHP with Next and Previous</title>
    <link href="https://cdn.jsdelivr.net/npm/bootstrap@5.1.3/dist/css/bootstrap.min.css" rel="stylesheet">
<body>
    <table class="table table-striped">
        <tr>
            <td>User ID</td>
            <td>User Name</td>
            <td>User Email</td>
        </tr>
        <tr>
            <?php
            
            while($row = mysqli_fetch_assoc($result))
            {


            ?>

            <td> <php? echo $row['ID'] ?>
</td>
<td> <php? echo $row['Username'] ?> </td>
<td> <php? echo $row['Email'] ?> </td>
</tr>
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
<?php

            }

            ?>


</body>
</html>

Wie helpt mij?
 
PHP hulp

PHP hulp

07/12/2022 18:49:48
 
- Ariën  -
Beheerder

- Ariën -

14/05/2022 19:26:55
Quote Anchor link
Gebruik code-tags a.u.b.

En de fout is dat je niet controleert of je query gelukt is. Blijkbaar mislukt deze om een bepaalde reden.

Los van dit gebruik je ook foute PHP-tags.
Gewijzigd op 14/05/2022 19:27:46 door - Ariën -
 
Ed Jeurissen

Ed Jeurissen

14/05/2022 19:36:54
Quote Anchor link
Hoi Arien de code tags had ik gebruikt. Hier zit ook HTML in helaas. Maar ik snap je 2e en 3e opmerking niet.

Zonder de HTML

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
<?php

require_once('config.php');
$query = "SELECT * FROM pagination";
$result = mysqli_query($con, $query);

?>



Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
<?php
        
        while($row = mysqli_fetch_assoc($result))
        {

        ?>

<php? echo $row['ID'] ?></td>
<php? echo $row['Username'] ?> </td>
<php? echo $row['Email'] ?> </td>

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
<?php

        }

        ?>



Toevoeging op 14/05/2022 19:37:42:

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
<?php

require_once('config.php');
$query = "SELECT * FROM pagination";
$result = mysqli_query($con, $query);

?>



Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
<?php
        
        while($row = mysqli_fetch_assoc($result))
        {

        ?>

<php? echo $row['ID'] ?>
<php? echo $row['Username'] ?>
<php? echo $row['Email'] ?>

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
<?php

        }

        ?>
 
- Ariën  -
Beheerder

- Ariën -

14/05/2022 19:42:02
Quote Anchor link
[code] en [/code]-tags bedoel ik.

Kan je jouw bericht aanpassen?
 
Ed Jeurissen

Ed Jeurissen

14/05/2022 19:43:35
Quote Anchor link
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
<?php

require_once('config.php');
$query = "SELECT * FROM pagination";
$result = mysqli_query($con, $query);

?>



        <?php
        
        while($row = mysqli_fetch_assoc($result))
        {

        ?>

        <php? echo $row['ID'] ?>

<php? echo $row['Username'] ?>
<php? echo $row['Email'] ?>
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
<?php

        }

        ?>




Toevoeging op 14/05/2022 19:44:46:

Het gaat mis bij de echo's

Daar wordt het in VS Code rood
 
- Ariën  -
Beheerder

- Ariën -

14/05/2022 19:49:25
Quote Anchor link
De rode tekst is onderdeel van PHP-highlighting. Dat is een string.

Toevoeging op 14/05/2022 19:55:31:

Lol, volgens gaat de codeparser hier op zijn plaat door <php? wat verkeerd is.
Anyway, je weet wat er nu fout gaat in je script. Tijd om controles toe te voegen.
Gewijzigd op 14/05/2022 19:57:37 door - Ariën -
 
Ed Jeurissen

Ed Jeurissen

14/05/2022 19:58:52
Quote Anchor link
Hoi,

Inderdaad php? vind die niet leuk. Het moest uiteraard ?php zijn. Thanks!
 
- Ariën  -
Beheerder

- Ariën -

14/05/2022 20:00:30
Quote Anchor link
Dat is niet het enige probleem in je script.
 
Ed Jeurissen

Ed Jeurissen

14/05/2022 20:02:10
Quote Anchor link
Maar we hadden te vroeg gejuicht :((. Dat lost het probleem niet op
 
- Ariën  -
Beheerder

- Ariën -

14/05/2022 20:05:02
Quote Anchor link
Dat zei ik al om 19:26:55. ;-)
 
Ed Jeurissen

Ed Jeurissen

14/05/2022 20:05:10
Quote Anchor link
hoe kan ik een plaatje ervan uploaden?
 
- Ariën  -
Beheerder

- Ariën -

14/05/2022 20:07:30
Quote Anchor link
Bij www.imgbb.com kan dat.

Toevoeging op 14/05/2022 20:09:28:

Handig leesvoer over goede opbouw van queries.:
http://wouterj.nl/sql-boilerplate/
Gewijzigd op 14/05/2022 20:09:54 door - Ariën -
 
Ed Jeurissen

Ed Jeurissen

14/05/2022 20:09:36
 
- Ariën  -
Beheerder

- Ariën -

14/05/2022 20:11:36
Quote Anchor link
Zorg gewoon voor goede scripts met correcte PHP-tags, en hier toont hij ook alles goed als je netjes code-tags gebruikt.

Een schoon topic begint bij jezelf ;-)
Gewijzigd op 14/05/2022 20:12:55 door - Ariën -
 
Ed Jeurissen

Ed Jeurissen

14/05/2022 20:21:27
Quote Anchor link
Hoi Arien,

WouterJ zijn leesvoer heb ik gedaan. Hier kreeg ik geen foutmeldingen. Zie bijgaand plaatje

https://ibb.co/F7ttMQW en

code

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
<?php
/*
 * MySQLi CONNECTIE BESTAND
 * In dit bestand maken we de verbinding met een MySQL
 * server doormiddel van MySQLi functies. In deze
 * functie zit meteen het selecteren van een db, dus
 * dat doen we ook meteen.
 */

/* Error-Handling
 * ==============
 * Als eerst maken we een functie voor het beheren van
 * errors. Hiermee kunnen we makkelijk het probleem vinden
 * als er iets mis is.
 * Zodra een script online is wil je niet dat de gebruiker
 * de foutmeldingen krijgt, vandaar dat we hier error_log
 * gebruiken als DEBUG_MODE false is.
 */
// DEBUG_MODE, deze wordt false als het script online geplaatst is

define('DEBUG_MODE', true);

/*
 * We slaan alle errors op in $errors. Deze lezen we in het
 * script uit in via een foreach loop
 */

$errors = Array();

if( DEBUG_MODE )
{
// DEBUG_MODE staat aan
    // Zorg dat we alle errors te zien krijgen

    ini_set('display_errors', 'On');
    error_reporting(E_ALL | E_NOTICE);
}

else
{
    // DEBUG_MODE uit dus geen errors tonen
    ini_set('display_errors', 'Off');
    error_reporting(0);
}

function
SQLerror( $error, $message, $file )
{

    // $error is het resultaat van mysql_error()
    // $message is de tekst die bij de error staat,
    //          deze tekst zullen we gebruiken als DEBUG_MODE uit staat
    // $file is het resultaat van __FILE__ in het bestand van de error

    
    global $errors; // Zorg dat de error variabele die we net hebben gemaakt in deze functie komt

    if( DEBUG_MODE )
    {
# DEBUG_MODE aan => sla de errors op zodat we ze later kunnen tonen
        $errors[] = $message.': '.$error;
    }

    else
    { # DEBUG_MODE uit => log de errors en sla alleen de $message op
        // We slaan niet alleen de error op, maar ook het bestand en de datum

        $log = $file.' ['.date('H:i:s').'] '.$error;
        error_log($log);

        $errors[] = $message;
    }
}


/* CONNECTIE MET MySQL SERVER
 * ==========================
 */

$sqlLink = mysqli_connect('localhost', 'root', 'usbw', 'sr_system');
// Verander de host, inlog naam, wachtwoord en sql-boilerplate (db) in de juiste gegevens

if( $sqlLink === false )
{

    // Als mysqli_connect false returned is er iets mis gegaan, gebruik de net gemaakte error functie
    // Omdat het de connectie betreft gebruiken we mysqli_connect_error()

    SQLerror( mysqli_connect_error(), 'We kunnen geen verbinding aanmaken', __FILE__ );
}[
/code]

Daar komen geen foutmeldingen uit. Dus de connectie is goed!

De vraag blijft waar de foutmelding nu zit?
 
- Ariën  -
Beheerder

- Ariën -

14/05/2022 20:26:03
Quote Anchor link
Dat kan mysqli_error($con) prima vertellen. Het probleem zit ook niet in je connectie, maar de query. Zorg dus voor goede controle.

https://github.com/wouterj/sql-boilerplate/blob/master/mysqli/producaal/query-select.php
Gewijzigd op 14/05/2022 20:28:02 door - Ariën -
 
Ed Jeurissen

Ed Jeurissen

14/05/2022 21:13:47
Quote Anchor link
Hallo,

Dat levert de volgende foutmeldingen op:


Warning: mysqli_real_escape_string() expects exactly 2 parameters, 1 given in C:\USB WebServer\root\Youtube11\index3.php on line 33

Notice: Undefined variable: sqlLink in C:\USB WebServer\root\Youtube11\index3.php on line 39

Warning: mysqli_query() expects parameter 1 to be mysqli, null given in C:\USB WebServer\root\Youtube11\index3.php on line 39

Warning: mysqli_num_rows() expects parameter 1 to be mysqli_result, null given in C:\USB WebServer\root\Youtube11\index3.php on line 53

Notice: Undefined variable: errors in C:\USB WebServer\root\Youtube11\index3.php on line 82

Maar ik weet niet wat ik hier mee moet. DE tabel pagination heb ik wel nog met enkele quotes voorzien omdat dit in andere documentatie ook staat.



Toevoeging op 14/05/2022 21:14:38:

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
<?php

// Include het connectie bestand
require 'connect.php';

// Maak een array voor foutmeldingen voor de gebruiker
$userErrors = Array();

if( $_SERVER['REQUEST_METHOD'] == 'POST' )
{

    // Het formulier is verzonden

    if( !isset($_POST['naam']) )
    {

        // Naam is niet ingevuld
        $userErrors[] = 'U heeft geen naam ingevuld';
    }


    if( count($userErrors) == 0 )
    {

        // Er zit niks in $userErrors en dus is alles goed
        
        // Gebruik altijd mysqli_real_escape_string voor alle
        // variabelen die de gebruiker kan aanpassen (alles met $_)

        $sQuery = "
            SELECT
                name,
                job,
                rank
            FROM
                users
            WHERE
                name = '"
.mysqli_real_escape_string(ucfirst(trim($_POST['naam'])))."'
            "
;
        // Gebruik in je query geen backtricks (`)
        // en alleen quotes (') als je te maken hebt met een string ($_POST['naam'] in dit geval)
        
        // Voer de query uit

        $result = mysqli_query($sqlLink, $sQuery);
        // De volgorde van de parameters (sqllink en query) zijn precies omgekeerd aan de mysql_*
        // functies. En de link parameter is verplicht


        if( $sQuery === false )
        {

            // De query is niet gelukt
            SQLerror(mysqli_error(), 'Uw opdracht kan niet worden uitgevoerd', __FILE__);
        }

        else
        {
            // De query is gelukt, maar heeft hij wel een resultaat gekregen?
            // Dat kijken we na met mysql_num_rows(), bij een SELECT query geeft deze
            // het aantal geselecteerde rijen weer

            if( mysqli_num_rows($result) > 0 )
            {

                // Er zijn meer dan 0 rijen opgehaald en dus is er iets gevonden

                // Nu moeten we de resultaten nog fetchen voordat we ze kunnen gebruiken
                // het fetchen zet ze in een array die we vervolgens met een while loop uitlezen

                while( $row = mysqli_fetch_assoc($result) )
                {

                    // $row is nu elk result. Met $row['kolomNaam'] kun je nu alles op vragen
                    echo $row['name'].' is een '.$row['job'].' en zijn rank is '.$row['rank'];
                }
            }

            else
            {
                // Er is niks gevonden, dit is geen systeem fout maar een zoekfout => user error
                $userError[] = 'Er kan niks gevonden worden';
            }
        }
    }
}


?>

<!DOCTYPE HTML>
<html lang=nl>
<head>
    <meta charset=UTF-8>
    <title>SQL Boilerplate - SELECT query met MySQL</title>
</head>
<body>
    <?php if( count($errors) > 0 ) :
          // Er zijn errors gevonden ?>

        <div class="error">
            <ul>
            <?php foreach( $errors as $err ) : ?>
                <li><?php echo $err; ?></li>
            <?php endforeach; ?>
            </ul>
        </div>
    <?php endif; ?>
    <?php if( count($userErrors) > 0 ) :
          // Er zijn errors gevonden ?>

        <div class="error">
            <ul>
            <?php foreach( $userErrors as $err ) : ?>
                <li><?php echo $err; ?></li>
            <?php endforeach; ?>
            </ul>
        </div>
    <?php endif; ?>
    <form action method=post>
        <label>Naam: <input type=text name=naam /></label><br>
        <input type=submit value=Toon />
    </form>
</body>
 
- Ariën  -
Beheerder

- Ariën -

14/05/2022 21:15:59
Quote Anchor link
Heb je de foutmeldingen al vertaald?
 
Ed Jeurissen

Ed Jeurissen

14/05/2022 21:46:02
Quote Anchor link
33:
mysqli_real_escape_string() expects exactly 2 parameters, 1 given

Verwacht 2, 1 gegeven. Dit leidt tot problemen!

39:
mysqli_query() expects parameter 1 to be mysqli, null given

Verwacht 1, 0 gegeven

53:

expects parameter 1 to be mysqli_result, null given
Verwacht 1, 0 gegeven

82:

Undefined variable:

ongedefineerde variable




Toevoeging op 14/05/2022 21:47:04:

Ik snap het nog steeds niet. Jullie hebben heel wat ervaring en ik heel weinig. Een tip van de sluier oplossen?
 
- Ariën  -
Beheerder

- Ariën -

14/05/2022 23:31:49
Quote Anchor link
Je mist een aantal argumenten in je functies.

Kijk eens op http://php.net/mysqli_real_escape_string
http://php.net/mysqli_query
 
Ed Jeurissen

Ed Jeurissen

15/05/2022 13:09:11
Quote Anchor link
Hallo,

IK snap hem nog steeds niet. Volgens mij staat alles wel correct maar doet ie het nog steeds niet!

Plaatje van de database:

https://ibb.co/0nH6kQs

Welke argumenten mis ik?
 

Pagina: 1 2 3 volgende »



Overzicht Reageren

 
 

Om de gebruiksvriendelijkheid van onze website en diensten te optimaliseren maken wij gebruik van cookies. Deze cookies gebruiken wij voor functionaliteiten, analytische gegevens en marketing doeleinden. U vindt meer informatie in onze privacy statement.