Avatar billede krydset Nybegynder
03. december 2003 - 18:56 Der er 7 kommentarer og
1 løsning

fejl i søgescript

Er der nogen der kan hjælpe med at få det her søgescript til at virker jeg får hele tiden en fejl i linie 48:

Warning: Supplied argument is not a valid MySQL result resource in /home/administrator/www/sog.php on line 48

<FORM action="sog.php" method="POST">
<TABLE>
    <tr>
    <td>Navn</td>
    <td><INPUT type="text" name="navn"></td>
    </tr>
   
    <tr>
    <td>Efternavn</td>
    <td><INPUT type="text" name="efter_navn"></td>
    </tr>
   
    <tr>
    <td>E-Mail</td>
    <td><INPUT type="text" name="e_mail"></td>
    </tr>

    <tr>
    <td>Telefon nr</td>
    <td><INPUT type="text" name="tlfnr"><td>
    </tr>
</TABLE>   
    <INPUT type="submit" name="sog" value="Søg">
</FORM>



<?PHP
$email = "tlarsen@pc-dk.dk";
include("shop/dbconnect.php");

if(isset($_POST[$navn])) {
    $res = mysql_query("SELECT * FROM varer, ordrer, ordrer_indhold, users WHERE ordrer.ordrer_id = ordrer_indhold.ordrer_id AND varer.id = ordrer_indhold.varer_id AND ordrer.kunde_id = users.tlfnr AND users.fornavn = '$_POST[navn]'");
    echo "DEBUG fornavn";
} elseif(isset($_POST[$efter_navn])) {
    $res = mysql_query("SELECT * FROM varer, ordrer, ordrer_indhold, users WHERE ordrer.ordrer_id = ordrer_indhold.ordrer_id AND varer.id = ordrer_indhold.varer_id AND ordrer.kunde_id = users.tlfnr AND users.efternavn = '$_POST[efter_navn]'");
    echo "DEBUG EFTERNAVN";
} elseif(isset($_POST[$e_mail])) {
    $res = mysql_query("SELECT * FROM varer, ordrer, ordrer_indhold, users WHERE ordrer.ordrer_id = ordrer_indhold.ordrer_id AND varer.id = ordrer_indhold.varer_id AND ordrer.kunde_id = users.tlfnr AND users.email = '$_POST[email]'");
    echo "DEBUG E_MAIL";
} else if(isset($_POST[$tlfnr])) {
    $res = mysql_query("SELECT * FROM varer, ordrer, ordrer_indhold, users WHERE ordrer.ordrer_id = ordrer_indhold.ordrer_id AND varer.id = ordrer_indhold.varer_id AND ordrer.kunde_id = users.tlfnr AND users.tlfnr = '$_POST[tlfnr]'");
    echo "DEBUG TLFNR";
}

$prev_ordre = 0;

/*LINE 48*/ while ($row = mysql_fetch_array($res)) {
    $cur_ordre = $row['ordrer_id'];
    if ($cur_ordre != $prev_ordre){
        echo "<hr>";
        echo "Ordrer id: $row[ordrer_id]<br>";
        echo "Kundeid: $row[kunde_id]<br>";
        echo "E-Mail: $row[email]<br>";
        echo "Formavn: $row[fornavn]<br>";
        echo "Efternavn: $row[efternavn]<br>";
        echo "Adresse: $row[adresse]<br>";
        echo "Bynavn: $row[bynavn]<br>";
        echo "Dato: $row[dato]<br>";
        echo "<br>";
    }
    echo "<strong>Varer</strong>&nbsp";
    echo "ID: $row[varer_id]<br> Varenavn: $row[vare_navn]<br> Pris: $row[pris]<br><br>";
    $prev_ordre = $cur_ordre;
}
?>


Mvh Krydset
Avatar billede krydset Nybegynder
03. december 2003 - 19:04 #1
Det skal lige siges at ingen af dem virker og dubug linier heller ikke bliver udskrevet :-O
Avatar billede phliplip Nybegynder
03. december 2003 - 19:06 #2
Der skal vel ikke noget $ i dine arrays ?

$_POST[$e_mail] skal være $_POST[e_mail] !! Osv. videre !

Derfor bliver dine if()'er ikke kørt og der for bliver der ikke lavet en $res som mysql_fetch_array() kan bruge :)
Avatar billede krydset Nybegynder
03. december 2003 - 19:10 #3
Det er kun boksen fornavn der kommer resultat, vis jeg søger på de andre udskriver den kun DEBUG fornavn

er det noget med if sætningerne at gøre??
Avatar billede krydset Nybegynder
03. december 2003 - 19:12 #4
I kan se siden her http://www.pc-dk.dk/sog.php
Avatar billede phliplip Nybegynder
03. december 2003 - 19:12 #5
Det er jo klart !!

Hele din opsætning er forkert ! Den søger kun på det der står i den første boks der er indtastet noget i !
Avatar billede krydset Nybegynder
03. december 2003 - 19:13 #6
og det ville du ikke ha sagt før :-OI
Avatar billede krydset Nybegynder
03. december 2003 - 19:13 #7
er der en smartere metode ??
Avatar billede phliplip Nybegynder
03. december 2003 - 19:14 #8
if(isset($_POST[$navn])) {
    $res = mysql_query("SELECT * FROM varer, ordrer, ordrer_indhold, users WHERE ordrer.ordrer_id = ordrer_indhold.ordrer_id AND varer.id = ordrer_indhold.varer_id AND ordrer.kunde_id = users.tlfnr AND users.fornavn = '$_POST[navn]'");
    echo "DEBUG fornavn";
} elseif(isset($_POST[$efter_navn])) {

svarer til:

Hvis der er indtastet noget i navn boksen
  så lav en søgning
hvis ikke.. og der er indtastet noget i efternavn boksen
  så lav en søgning
hvis heller ikke der... [osv]
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester