Op deze website gebruiken we cookies om content en advertenties te personaliseren, om functies voor social media te bieden en om ons websiteverkeer te analyseren. Ook delen we informatie over uw gebruik van onze site met onze partners voor social media, adverteren en analyse. Deze partners kunnen deze gegevens combineren met andere informatie die u aan ze heeft verstrekt of die ze hebben verzameld op basis van uw gebruik van hun services. Meer informatie.

Akkoord

Vraag & Antwoord

Webprogrammeren & scripting

Probleem met querie

None
11 antwoorden
  • Ik heb een probleem met een querie die een aantal gegevens moet opvragen vanuit een DB.

    Op de zoekpagina heb ik een pull-down menu gemaakt met de naam "zoek_in_gesch" en een tekstveld (1 regel) met de naam "zoek".
    Gegevens worden doorgestuurd naar een nieuwe pagina die de querie moet uitvoeren. Deze code heb ik gebruikt voor de pagina's die de gegevens moet weergeven:
    [quote:e03fbcf79e]
    <?php
    include("includedbp.inc";);

    $global_dbh = mysql_connect("$hostname", "$user", "$password";);
    if (!$global_dbh)
    die ("Fout bij verbinden met database";);
    mysql_select_db($database, $global_dbh);

    $query = "SELECT bedr_naam, naam, datum, maand, jaar, partij FROM $table_name WHERE $zoek_in_gesch = $zoek";
    $result_id = mysql_query($query);

    $row = mysql_fetch_row ($result_id);

    $string = (t_string="($row->$bedr_naam $row->$naam $row->$datum $row->$maand $row->$jaar $row->$partij<br>;)";);
    print "$string";
    ?>
    [/quote:e03fbcf79e]

    Ook heb ik al het volgende geprobeerd:

    [quote:e03fbcf79e]
    <?php
    include("includedbp.inc";);

    $global_dbh = mysql_connect("$hostname", "$user", "$password";);
    if (!$global_dbh)
    die ("Fout bij verbinden met database";);
    mysql_select_db($database, $global_dbh);

    function display_db_query($table_name)
    {
    $query_string = "SELECT bedr_naam, naam, datum, maand, jaar, partij FROM $table_name WHERE $zoek_in_gesch = $zoek";
    $result_id = mysql_query($query_string);
    $column_count = mysql_num_fields($result_id);

    print<"table border=0>n";);
    while ($row = mysql_fetch_row($result_id))
    {
    print("<tr align=left valign=top>";);
    for ($column_num = 0;
    $column_num < $column_count;
    $column_num++)
    print("<td>$row[$column_num]</td>n";);
    print("</tr>n";);
    }
    print("</table>n";);
    }
    ?>

    <table><tr><td>
    <?php display_db_table("partijgesch", $global_dbh); ?>
    </td></tr></table>
    [/quote:e03fbcf79e]

    Weet iemand waar ik een fout heb gemaakt of weet iemand een andere goede code die ik eventueel kan gebruiken?

    Alvast bedankt,
    Arjen.

    [ Dit Bericht is bewerkt door: arjenv op 2002-01-29 20:32 ]

    [ Dit Bericht is bewerkt door: arjenv op 2002-01-30 00:03 ]
  • Bij je laatste code zit er een " te veel in de query. Voor de SELECT.

    $query_string = [b:ad160d6479]"[/b:ad160d6479]"SELECT
  • Als je zoekt in stringvelden, moet je zoekterm tussen quotes staan in de query:
    $result = mysql($dbname, "SELECT * FROM Boeken WHERE Titel Like '%$zoekterm%' OR Auteur Like '%$zoekterm%' ORDER BY Boeken.Auteur_Achternaam, Boeken.Titel;";);
    De %% staan er om ook op gedeeltes van velden te zoeken. Let verder op dat als de zoekterm een ' bevat, dat dan je query niet meer loopt. Verhelp je door eerst slashes aan je zoekterm toe te voegen, met de functie addSlashes(string).
  • Heb de dubbelle haakjes weggehaald, krijg de volgende foutmelding;
    parse error in zoek_resultaat.inc on line 15.

    Ik zou alleen niet weten wat daar fout aan is.
  • Ben al weer een paar stappen verder. De foutmelding van regel 15 (vorige bericht)is opgelost.
    Nu zit ik alleen met de volgende fout, en deze is voor mij totaal onbekend.

    Fatal error: Call to undefined function: display_db_table() in zoek_resultaat.inc on line 30

    Mocht iemand weten wat dit inhoud en hoe ik dit op kan lossen, dan graag.
    PS het gaat om de tweede quote van het eerste bericht.
    De naam van de tabel is "partijgesch"
  • De foutmelding geeft het al aan: de functie is niet gedeclareerd.
    M.a.w. je roept de functie [i:6b3d17256c]display_db_[b:6b3d17256c]table[/b:6b3d17256c][/i:6b3d17256c] aan terwijl in je code de functie als [i:6b3d17256c]display_db_[b:6b3d17256c]query[/b:6b3d17256c][/i:6b3d17256c] staat.

    Er klopt b.t.w. nog wel meer niet aan de functie;
    - global vars die niet als zodanig gedeclareerd zijn,
    - vars die meegestuurd worden aan de functie maar niet gebruikt worden.

    [ Dit Bericht is bewerkt door: Annie op 2002-01-30 01:07 ]
  • OK,
    Nou heb ik dus de volgende code:

    [quote:d3ee8027d4]
    <?php
    include("includedbp.inc";);

    $global_dbh = mysql_connect("$hostname", "$user", "$password";);
    if (!$global_dbh)
    die ("Fout bij verbinden met database";);
    mysql_select_db($database, $global_dbh);

    function display_db_query($table_name)
    {
    $query_string = "SELECT bedr_naam, naam, datum, maand, jaar, partij FROM $table_name WHERE $zoek_in_gesch = '%$zoek%'";
    $result_id = mysql_query($query_string);
    $column_count = mysql_num_fields($result_id);

    print("<table border=0>n";);
    while ($row = mysql_fetch_row($result_id))
    {
    print("<tr align=left valign=top>";);
    for ($column_num = 0;
    $column_num < $column_count;
    $column_num++)
    print("<td>$row[$column_num]</td>n";);
    print("</tr>n";);
    }
    print("</table>n";);
    }
    ?>

    <table><tr><td>
    <?php display_db_query("partijgesch", $global_dbh); ?>
    </td></tr></table>
    [/quote:d3ee8027d4]

    Met dank aan de reacties.

    Alleen het werkt nog steeds niet.
    Ik ben echt totaal nieuw op dit vlak, dus alle hulp is welkom.
  • Zoals ik al zei in m'n edit: kijk eens naar de scope van je variabelen.

    Lees ook even de manual door over het gebruik van vars binnen PHP, dat moet een hoop duidelijk maken. Als het dan nog niet duidelijk is dan kan je natuurlijk altijd nog vragen stellen.
    http://www.php.net/manual/en/language.variables.scope.php

    tip: echo een query eerst naar het scherm voor je 'm uitvoert op de database. Dan kan je zien hoe deze gevuld is (of juist niet :wink:) door je variabelen. En dan kan je vaak beter beoordelen waarom een query niet de resultaten geeft die je eigenlijk verwacht.
  • Ik heb het een en ander nog eens doorgelezen, maar ik heb ondertussen nog steeds geen werkend script.
    Heb bij webmonkey ook zo'n tutorial afgewerkt en de code voor de db ook gebruikt voor mijn script, maar bij het opvragen blijf ik een melding krijgen dat alles niet werkt, en ik denk haast dat het in de mysql_fetch_array zit.
    Ik zou alleen echt niet weten hoe of wat ik moet doen om het script werkend te krijgen.
    Annie: Heb eerst een echo gedaan van de query voordat ie naar de db gestuurd word, en hij is gewoon goed gevuld door de variabelen.


    [ Dit Bericht is bewerkt door: arjenv op 2002-02-03 01:33 ]
  • [quote:a2057845fa]
    Op 03-02-2002 1:30, schreef arjenv:
    Annie: Heb eerst een echo gedaan van de query voordat ie naar de db gestuurd word, en hij is gewoon goed gevuld door de variabelen.
    [/quote:a2057845fa]
    En heb je deze query ook al eens uitgeprobeerd op de database (dus niet via het script)?
    Laat anders nog eens wat code zien wat je nu hebt.
  • Hij werkt! :grin:

    Heb de code nogmaals overgeschreven met een aantal andere select statements(?) en het where gedeelte niet als = maar als like en nou krijg ik eindelijk output. denk dat ik ook ergens een typefout had staan. :oops:

    Nogmaals bedankt voor alle reacties.

    Ps, hier ff het script dat nu werkt, misschien dat iemand er nog wat aan heeft:

    [code:1:88e7f0a522]
    <?php
    print("Dit zijn de resultaten voor uw zoekactie naar: <b>$zoek</b><br>";);

    include("includedbp.inc";);

    $db = mysql_connect("$hostname", "$user", "$password";);
    if (!$db)
    die ("Fout bij verbinden met database";);
    mysql_select_db("$database";);

    $query = "SELECT bedr_naam, naam, dag, maand, jaar, partij FROM partijgesch WHERE $zoek_in_gesch like '%$zoek%'";
    echo "$query";
    $result = mysql_query($query);
    if ($myrow = mysql_fetch_array($result)) {
    echo "<table border=1>n";
    echo "<tr><td>Bedrijfsnaam</td><td>Naam</td><td>Datum</td><td>Partij</td></tr>n";
    do {
    printf("<tr><td>%s</td><td>%s</td><td>%s-%s-%s</td><td>%s</td></tr>n", $myrow["bedr_naam"], $myrow["naam"], $myrow["dag"], $myrow["maand"], $myrow["jaar"], $myrow["partij"]);
    } while ($myrow = mysql_fetch_array($result));
    echo "</table>n";
    } else {
    echo "Sorry, geen data gevonden voor zoekopdracht: $zoek !";
    }

    ?>
    [/code:1:88e7f0a522]

Beantwoord deze vraag

Dit is een gearchiveerde pagina. Antwoorden is niet meer mogelijk.