[PHP] mysql in wapsite

Pagina: 1
Acties:

Onderwerpen


Acties:
  • 0 Henk 'm!

  • robg1984
  • Registratie: December 2002
  • Laatst online: 17-09 11:18
hallo, onderstaande code gebruik ik om een wapsite te maken, hierbij maak ik gebruik van mysql en php. de eerste query die je in de code ziet werkt uitstekend, maar de tweede niet, dit doordat ik met een variabele werk. deze variabele bestaat uit een variabele die xml genereert (met haakjes) en die bevat vervolgens het getal dat overeenkomt met een memberid uit mijn database.

Waarom werkt die 2e query niet? als ik de variabele echo dan zie ik netjes een getal als ik ". en ." om die variabele heen zet krijg ik ook geen resultaat.

Wie heeft eer weleens met XML en mysql door elkaar gewerkt en kan me helpen?

PHP:
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
<? 
header('Content-type: text/vnd.wap.wml'); 
echo '<?xml version="1.0"?>'; 
echo '<!DOCTYPE wml PUBLIC "-//WAPFORUM//DTD WML 1.1//EN" "http://www.wapforum.org/DTD/wml_1.1.xml">'; 
echo '<wml>'; 
    include 'config.php'; 
    echo '<card id="card1" title="Wap">'; 
     
        echo '<do type="accept" label="Kies">'; 
        echo '  <go href="#card2"/>'; 
        echo '</do>'; 
         
        echo '<p>'; 
            $query = mysql_query('SELECT * FROM a_inloggen'); 
            echo '<select name="memberid">'; 
            while($s = mysql_fetch_object($query)){ 
                $naam = str_replace("ë","e",$s->echtenaam); 
                echo '<option value="'.$s->memberid.'">'.$naam.'</option>'; 
            } 
            echo '</select>'; 
        echo '</p>'; 
     
    echo '</card>'; 
    echo '<card id="card2" title="Wap">'; 
     
        echo '<p>'; 

            $memberid = '$(memberid)'; 
            //echo $memberid; -> geeft het getal correct
            $meerinfo = mysql_query("SELECT * FROM a_inloggen WHERE memberid='$memberid'"); 
            while($info = mysql_fetch_object($meerinfo)){ 
                echo '<B>'.$info->echtenaam.' ('.$info->memberid.')</B><BR>'; 
                echo $info->email.'<BR>'; 
                echo $info->kleur.'<BR>'; 
            } 
        echo '</p>'; 
     
    echo '</card>'; 
echo '</wml>'; 
?>

[ Voor 22% gewijzigd door robg1984 op 29-04-2004 15:43 ]


Acties:
  • 0 Henk 'm!

  • Shadowman
  • Registratie: Januari 2002
  • Niet online
PHP:
1
$memberid = '$(memberid)';

weghalen. Zo zet die namelijk in de variabel die tekst omdat tussen singlequotes geen variabelen worden geparsed.

Acties:
  • 0 Henk 'm!

  • Tha_Butcha
  • Registratie: November 2000
  • Laatst online: 20-01 18:05
waarom initialize je $memberid zo:

PHP:
1
$memberid = '$(memberid)';


en niet eerder met gewoon

PHP:
1
$memberid = $s->memberid;


verder lijkt het me vrij handig om die mysql_query een error te laten returnen, want "hij werkt niet", daar kunnen we niet zoveel mee.

Compromises are for the weak


Acties:
  • 0 Henk 'm!

  • robg1984
  • Registratie: December 2002
  • Laatst online: 17-09 11:18
@Tha_Butcha:
$memberid = '$(memberid)'; -> omdat die variabel uit die option komt en niet uit de database...

@Shadowman:
$memberid = '$(memberid)'; -> blijkbaar is met haakjes de manier waarop je in XML variabelen weergeeft, zonder haakjes werkt het ook niet... hier is niks fout aan want die geeft gewoon het goede getal..

ik zal effe zorgen dat die error geeft...
ok heb die query verandert in:

PHP:
1
$meerinfo = mysql_query("SELECT * FROM a_inloggen WHERE memberid='$memberid'") or die ("FOUT: " . mysql_error());


maar krijg geen error, krijg gewoon niks te zien

[ Voor 26% gewijzigd door robg1984 op 29-04-2004 15:57 ]


Acties:
  • 0 Henk 'm!

  • Shadowman
  • Registratie: Januari 2002
  • Niet online
Als je die "or die" is wilt veranderen in het volgende en een echo erbij:
PHP:
1
2
or die("SELECT * FROM a_inloggen WHERE memberid='$memberid' <BR>" . mysql_error());
echo "SELECT * FROM a_inloggen WHERE memberid='$memberid'";

Dan kun je de query die wordt opgelevert in bv phpmyadmin uitvoeren en kijken of dat resultaten geeft.

[ Voor 10% gewijzigd door Shadowman op 29-04-2004 16:00 ]


Acties:
  • 0 Henk 'm!

Verwijderd

ik ben natuurlijk geen expert maat moet het niet zijn :

WHERE memberid=\"'$memberid'\"");

Acties:
  • 0 Henk 'm!

  • robg1984
  • Registratie: December 2002
  • Laatst online: 17-09 11:18
als ik die query echo staat er netjes in: WHERE memberid='30' (in dit geval 30 dus) als ik in de database kijk bestaat 30. logisch want de eerste query genereert alles...

voor de rest weer geen error....ik heb het idee dat het ook niet aan de while-loop ligt want bij de eerste query gebruik ik die ook en die werkt ook....

@otterdip: nee

Acties:
  • 0 Henk 'm!

  • NMe
  • Registratie: Februari 2004
  • Laatst online: 09-09 13:58

NMe

Quia Ego Sic Dico.

Haal je nou een id op als string? Ids zijn meestal integers dus die enkele quotes (WHERE memberid='30') heb je niet nodig lijkt me. Werkt die afgedrukte query wel gewoon in phpMyAdmin?

'E's fighting in there!' he stuttered, grabbing the captain's arm.
'All by himself?' said the captain.
'No, with everyone!' shouted Nobby, hopping from one foot to the other.


Acties:
  • 0 Henk 'm!

  • robg1984
  • Registratie: December 2002
  • Laatst online: 17-09 11:18
zonder die enkele aanhalingstekens krijg ik foutmelding, ik meot die wel als string ophalen want om de variabele die ik van de XML zelf krijg (met die aanhalingstekens dus) erin te zetten (in de query) werkt het ook niet...

die query werkt wel in phpmyadmin

Acties:
  • 0 Henk 'm!

  • Shadowman
  • Registratie: Januari 2002
  • Niet online
PHP:
1
echo mysql_num_rows($meerinfo);


Zou je is willen kijken of dit wel een aantal teruggeeft?

Je kunt overigens wel die single-quotes uit je query halen aangezien het een integer is.
zo dus:
SELECT * FROM a_inloggen WHERE memberid=$memberid
Pagina: 1