Avatar billede kren1000 Nybegynder
29. december 2005 - 20:03 Der er 24 kommentarer og
1 løsning

php/database - while sætning

Jeg har problemer med at få hentet noget ud af min databse, den vil ikke acceptere min while sætning, kan nogen mon hjælpe?

Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in /home/virtual/eksplicit.dk/public_html/dkdating 2/soeg_resultat.php on line 39

Her er noget af koden det drejer sig om, linie 39 er while sætningen:
--------------------------------------------------------------
$sql = "select * from users WHERE aktiv = 'ja' AND sex like '%" & $sex & "%' AND kropsbygning LIKE '%" & $kb & "%' AND haircolor LIKE '%" & $haircolor & "%' AND nationalitet LIKE '%" & $nationalitet & "%' AND civilstand LIKE '%" & $civilstand & "%' AND handicap1 LIKE '%" & $handicap & "%' AND kids LIKE '%" & $kids & "%' AND rygning LIKE '%" & $rygning & "%' AND areacode LIKE '%" & $area & "%')";
   
    $query = mysql_query($sql,$mydb);
   
    while ($raekke=mysql_fetch_array($query))   
    {
   
    ?>

        <table cellspacing="0" cellpadding="0" border="1" bordercolor="#c1c1c1">
        <td>
        <table cellspacing="0" cellpadding="0" border="1" bordercolor="#227CC6">
            <tr height="17">
                <td bgcolor="white" width="90" height="17"><b>&nbsp;Profilnavn:</b></td>
                <td bgcolor="white" width="90" height="17"><b><?php echo $raekke[brugernavn];?></b></td>
                <td bgcolor="white" width="30" height="17"></td>
                <td bgcolor="white" width="139" hei
Avatar billede Slettet bruger
29. december 2005 - 20:10 #1
Du må ikke bruge " i din sql, når du også bruger " til at "indkapsle" din streng med.
Avatar billede kren1000 Nybegynder
29. december 2005 - 20:14 #2
ok, men det virker ikke endnu, samme fejl meldes, jeg har nu rettet det således:

<?php

    $mydb = mysql_connect('mysql05.cliche.dk','eksplicit.dk','kareem');
    mysql_select_db('eksplicit_dk',$mydb);
   
    $sql = "select * from users WHERE aktiv = ja AND sex like '%' & $sex & '%' AND kropsbygning LIKE '%' & $kb & '%' AND haircolor LIKE '%' & $haircolor & '%' AND nationalitet LIKE '%' & $nationalitet & '%' AND civilstand LIKE '%' & $civilstand & '%' AND handicap1 LIKE '%' & $handicap & '%' AND kids LIKE '%' & $kids & '%' AND rygning LIKE '%' & $rygning & '%' AND areacode LIKE '%' & $area & '%'";
   
    $query = mysql_query($sql,$mydb);
   
    while ($raekke=mysql_fetch_array($query))   
    {
   
    ?>

        <table cellspacing="0" cellpadding="0" border="1" bordercolor="#c1c1c1">
        <td>
        <table cellspacing="0" cellpadding="0" border="1" bordercolor="#227CC6">
            <tr height="17">
                <td bgcolor="white" width="90" height="17"><b>&nbsp;Profilnavn:</b></td>
                <td bgcolor="white" width="90" height="17"><b><?php echo $raekke[brugernavn];?></b></td>
                <td bgcolor="white" width="30" height="17"></td>
Avatar billede kren1000 Nybegynder
29. december 2005 - 20:22 #3
Jeg skal måske lige sige at man kommer fra en side hvor man udfylder nogle søgekriterier, og så kommer til denne side, hvor den så udskriver selve søgningen.

Er det måske noget med at det skal være $_POST[sex] istedet for $_sex, når det kommer fra en formel?
Avatar billede apache999 Nybegynder
29. december 2005 - 21:16 #4
Må jeg foreslå, at du skynder dig at ændre password & brugernavn til din database, og så lader være med at paste det her igen?

En anden god lille finte er at skrive:

$query = mysql_query($sql,$mydb) or die(mysql_error().$query);

Når du laver en kompliceret query. Så får du en mere meningsfyldt fejlmeddelelse. Det ser ud til, at du mangler et par '' uden om "aktiv = 'ja'" lige i starten, men der er muligvis flere fejl.
Avatar billede kren1000 Nybegynder
29. december 2005 - 23:00 #5
Hej, du har helt ret, det var en brøler, Jeg har rettet det:)

Ja jeg vil lige prøve at skrive det:$query = mysql_query($sql,$mydb) or die(mysql_error().$query);

Tak for rådet:)
Avatar billede erikjacobsen Ekspert
29. december 2005 - 23:04 #6
Lidt bedre:

  $query = mysql_query($sql,$mydb) or die(mysql_error().$sql);
Avatar billede erikjacobsen Ekspert
29. december 2005 - 23:07 #7
I din oprindelige sql-sætning - den i spørgsmålet - skal du

1) Erstatte & med .
2) Sikkert bruge $_POST['kb'] i stedet for $kb  (osv de andre steder)
Avatar billede kren1000 Nybegynder
29. december 2005 - 23:43 #8
Jeg har rettet & med . nu og skrevet den nye query sætning istedet og for ny følgene fejl: (jeg prøver dog lige at rette til POST)

Profiler: You have an error in your SQL syntax. Check the manual that corresponds to your MySQL server version for the right syntax to use near '. m . '%' AND kropsbygning LIKE '%' . . '%' AND haircolor LIKEselect * from users WHERE aktiv = ja AND sex like '%' . m . '%' AND kropsbygning LIKE '%' . . '%' AND haircolor LIKE '%' . . '%' AND nationalitet LIKE '%' . . '%' AND civilstand LIKE '%' . . '%' AND handicap1 LIKE '%' . . '%' AND kids LIKE '%' . . '%' AND rygning LIKE '%' . . '%' AND areacode LIKE '%' . . '%'
Avatar billede erikjacobsen Ekspert
29. december 2005 - 23:45 #9
Du skal tage den du har i spørgsmålet foroven. Og ja, $_POST skal nok være der.
Avatar billede erikjacobsen Ekspert
29. december 2005 - 23:47 #10
Bortset fra den ikke skal slutte på et ")"
Avatar billede kren1000 Nybegynder
29. december 2005 - 23:59 #11
$sql = "select * from users WHERE aktiv = ja AND sex like '%' . $_POST['sex'] . '%' AND kropsbygning LIKE '%' . $_POST['kb'] . '%' AND haircolor LIKE '%' . $_POST['haircolor'] . '%' AND nationalitet LIKE '%' . $_POST['nationalitet'] . '%' AND civilstand LIKE '%' . $_POST['civilstand'] . '%' AND handicap1 LIKE '%' . $_POST['handicap'] . '%' AND kids LIKE '%' . $_POST['kids'] . '%' AND rygning LIKE '%' . $_POST['rygning'] . '%' AND areacode LIKE '%' . $_POST['area'] . '%'";

Jeg for nu denne fejl:

Parse error: parse error, unexpected T_ENCAPSED_AND_WHITESPACE, expecting T_STRING or T_VARIABLE or T_NUM_STRING in /home/virtual/eksplicit.dk/public_html/dkdating 2/soeg_resultat.php on line 35
Avatar billede kren1000 Nybegynder
30. december 2005 - 00:01 #12
og denne:

$query = mysql_query($sql,$mydb) or die(mysql_error().$sql);
Avatar billede kren1000 Nybegynder
30. december 2005 - 00:04 #13
Ovenstående er bare den query jeg brugte, mener jeg, ikke en fejl:)
Avatar billede kren1000 Nybegynder
30. december 2005 - 00:07 #14
kan det være fordi at tal værdier ikke skal bruge 'area'?
Avatar billede kren1000 Nybegynder
30. december 2005 - 00:42 #15
Jeg har nu fjernet alt med "like" i sætningen, da det egentlig godt kan undværes.

Der bliver dog stadig meldt fejl som i kommentaren ovenover(3 kommentarer over)

Kan nogen se problemet?

$sql = "select * from users WHERE aktiv = ja AND sex = $_POST['sex'] AND kropsbygning = $_POST['kb'] AND haircolor = $_POST['haircolor'] AND nationalitet = $_POST['nationalitet'] AND civilstand = $_POST['civilstand'] AND handicap1 = $_POST['handicap'] AND kids = $_POST['kids'] AND rygning = $_POST['rygning'] AND areacode = $_POST['area']";
Avatar billede Slettet bruger
30. december 2005 - 05:34 #16
du skal have ' om strenge:

"select * from users WHERE aktiv='ja' AND sex?'". $_POST['sex'] ."' AND ....
Avatar billede Slettet bruger
30. december 2005 - 05:36 #17
$sql = "SELECT * from users WHERE aktiv ='ja' AND sex ='". $_POST['sex'] ."' AND kropsbygning ='". $_POST['kb'] ."' AND haircolor ='". $_POST['haircolor']."' AND nationalitet ='". $_POST['nationalitet'] ."' AND civilstand ='". $_POST['civilstand'] ."' AND handicap1 ='". $_POST['handicap'] ."' AND kids = '". $_POST['kids'] ."' AND rygning = '". $_POST['rygning'] ."' AND areacode ='". $_POST['area'] ."'";
Avatar billede Slettet bruger
30. december 2005 - 05:40 #18
Her bør den være:

SELECT
    *
FROM
    users
WHERE
    aktiv = 'ja'
    AND sex         LIKE '%". $_POST['foo'] ."%'
    AND kropsbygning     LIKE '%". $_POST['foo'] ."%'
    AND haircolor         LIKE '%". $_POST['foo'] ."%'
    AND nationalitet     LIKE '%". $_POST['foo'] ."%'
    AND civilstand         LIKE '%". $_POST['foo'] ."%'
    AND handicap1         LIKE '%". $_POST['foo'] ."%'
    AND kids         LIKE '%". $_POST['foo'] ."%'
    AND rygning         LIKE '%". $_POST['foo'] ."%'
    AND areacode         LIKE '%". $_POST['foo'] ."%'
Avatar billede erikjacobsen Ekspert
30. december 2005 - 10:23 #19
29/12-2005 23:59:23    $sql = "select * from users WHERE aktiv = ja AND sex like '%' . $_POST['sex'] . '%' AND kropsbygning LIKE '%' . $_POST['kb'] . '%' AND haircolor LIKE '%' . $_POST['haircolor'] . '%' AND nationalitet LIKE '%' . $_POST['nationalitet'] . '%' AND civilstand LIKE '%' . $_POST['civilstand'] . '%' AND handicap1 LIKE '%' . $_POST['handicap'] . '%' AND kids LIKE '%' . $_POST['kids'] . '%' AND rygning LIKE '%' . $_POST['rygning'] . '%' AND areacode LIKE '%' . $_POST['area'] . '%'";
Avatar billede erikjacobsen Ekspert
30. december 2005 - 10:24 #20
Hovsa - det jeg ville sige var, at det ikke er den oprindelige i dit spørgsmål. Du får fejl pga strofferne. Hvis du selv vil lege er det fint med mig - men hvis du gør som jeg foreslår kan jeg hjælpe dig ;)
Avatar billede kren1000 Nybegynder
30. december 2005 - 11:43 #21
Jeg har gjort som du skrev i din sidste kommentar Wicez og det virker perfekt! Takker og bukker, skriver du ikke et svar igen så du kan få point?

Jeg er ikke helt med på hvad du mener til sidst erik, men du skal have tak for hjælp og tid alligevel.

Eller kan man dele points? I har jo begge brugt tid og råd?
Avatar billede erikjacobsen Ekspert
30. december 2005 - 11:50 #22
Jeg samler slet ikke på point, tak.
Avatar billede Slettet bruger
30. december 2005 - 14:39 #23
Det er jeg glad for, kren1000 ;)
Avatar billede kren1000 Nybegynder
30. december 2005 - 15:51 #24
Ja det er jeg skam også:)
Avatar billede Slettet bruger
30. december 2005 - 17:39 #25
Tak for point.
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
IT-kurser om Microsoft 365, sikkerhed, personlig vækst, udvikling, digital markedsføring, grafisk design, SAP og forretningsanalyse.

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