Php - Vraag Query en doorgeven parameter

bikerron

Gebruiker
Lid geworden
9 mei 2009
Berichten
244
Beste,
Na een aantal jaren pak ik weer een stuk van een door mij opgezette website op die gekoppeld is aan MySql.
Via PHP bestanden bouw ik de pagina's op op basis van een op te roepen MySql (Php Myadmin 5.2.1) Query én een geselecteerde parameter.
Ik krijg een Fatal error op iets wat voorheen wel werkte, wellicht omdat PHP (versie 8.2.12) nu anders is dan destijds.
Kunnen jullie mij op weg helpen de fout op te lossen ?
Bij voorbaat dank, Ron

deel van de code:
Code:
<?php
// Voer SQL query uit
$query = 'SELECT * FROM v_aantal_vluchten_per_toestel'. $naam_selectie;
// echo $query;

$result = mysqli_query($query) or die('Query foutief: ' . mysqli_error());
if (mysqli_num_rows($result) == 0) {
            echo '<p>Nog geen registraties gevonden, selecteer een toestelnaam. </p> ';
            } ELSE
Het resultaat:
php-foutmelding.webp
 
$result = mysqli_query($query) or die('Query foutief: ' . mysqli_error());

Waar is je connectie? In dit voorbeeld $conn

PHP:
$result = mysqli_query($conn, $query) or die('Query foutief: ' . mysqli_error($conn));
 
Bij mysqli heb je altijd een connectie moeten meegeven aan je query-functie.

Voorheen had dit nooit gewerkt, tenzij de afgeschafte mysql-functies gebruikte.
 
Heren,
Dank voor de vlotte reactie. Inderdaad heb ik de verouderde myslql_query vervangen door de mysqli_query
Ik maak in de PHP file gebruik van:
Moet ik dan $conn nog "vullen" ???
Code:
include_once('open.php');
Dat komt direct NA de te selecteren optie.
De open.php ziet er als vogt uit: (moest ik aanpassen, maar die werkt wel.
Code:
<?php
// Verbinding opzetten en toegang tot MYSQL-databse
//                           Let op: Lokaal: PC
IF ($hostname =$_SERVER['SERVER_NAME'] == 'localhost') {
              $host         = 'localhost';
              $user         ='root';
              $toegang      ='';
              $database     ='bwk';
              $dbPort        = "3306";
            } ELSE {//         Server: budgetwebhosting
              $host         ="domain";
              $user         ="bikerron";
              $toegang      ="geheim";
              $database     ="leuk";
            }
// Verbinding maken met MYSQL-server

$mysqli = new mysqli($host, $user, $toegang, $database);

if ($mysqli->connect_error) {
    die("Verbinding met databse maken mislukt " . $mysqli->connect_error);
}
// echo "Connected successfully"
?>
 
Ja, de eerste parameter van mysqli_query() is de connectie.

Of gebruik de OO variant met $mysqli->query(....). Die raad ik ook aan omdat dat flexibeler is.
 
Aar,
Ik kan e.e.a. wel "lezen" maar niet zomaar zelf samenstellen.
Is het dan de bedoeling dat ik de parameter $mysqli plaatst in statement:
zoals:
Code:
$result = mysqli_query($mysqli, $query) or die('Query foutief: ' . mysqli_error($mysqli))
 
Correct!
Maar persoonlijk vind ik de OO manier beter.
 
AAr,
Dat is gelukt maar.... de uiteindelijk verwerking, een array tonen loopt weer fout.
Ik had een Mysql_Assoc en is nu gewijgds naar: MYSQLI_fetch_assoc

Ik krijg de melding:
Fatal error: Uncaught Error: Undefined constant "MYSQLI_fetch_assoc"
Code:
$result = mysqli_query($mysqli, $query) or die('Query foutief: ' . mysqli_error($mysqli));
if (mysqli_num_rows($result) == 0) {
            echo '<p>Nog geen registraties gevonden, selecteer een toestelnaam. </p> ';
            } ELSE {

            // Printing results in HTML
            //echo "Gevonden kandidaten";
            echo "<table border=\"0\" cellpadding=\"2\" cellspacing=\"2\" width=\"600\">";
            //echo "\t<tr>\n";
            echo "<td bgcolor=#C0C0C0 valign=\"top\"><b>Jaar</font></b></td>\n";   
            echo "<td bgcolor=#C0C0C0 valign=\"top\"><b>Naam Toestel</font></b></td>\n";
            echo "<td bgcolor=#C0C0C0 valign=\"top\"><b>Type Toestel</font></b></td>\n";
            echo "<td bgcolor=#C0C0C0 valign=\"top\"><b>Aantal Vluchten</font></b></td>\n";
            echo "\t<tr>\n";

            // Gegevens uit resultaat van query ophalen tot <end of file>
            while ($line = mysqli_fetch_array($result, MYSQLI_fetch_assoc)) {

            foreach ($line as $col_value) {
                echo "\t\t<td valign=\"top\">$col_value</td>\n";
            }   
            echo "\t</tr>\n";
        }
    }
 
Waarom die parameter? Waar haal je die vandaan?

Ik gebruik gewoon: mysqli_fetch_assoc()
Of in OO: $query->fetch_assoc().
 
Terug
Bovenaan Onderaan