Avatar billede iznogood Nybegynder
31. maj 2005 - 14:57 Der er 6 kommentarer og
2 løsninger

$_POST og SELECT

Jeg har lavet en form på search.php, hvor man blot skal indtaste et postnummer.

Postnummeret sendes (vha. POST-kommandoen) til en result.php. På result,php skal alle poster i min MySQL-database med samme postnummer listes op.

Hvordan får jeg erstattet '****' med værdien i $_POST["****"] i koden nedenfor?

$foresp = mysql_query("SELECT * FROM skoler WHERE postnr='****' ORDER BY 'navn'");

Håber mit spørgsmål giver mening.
Avatar billede medions Nybegynder
31. maj 2005 - 14:58 #1
$foresp = mysql_query("SELECT * FROM skoler WHERE postnr='".$_POST['navn']."' ORDER BY 'navn'");

//>Rune
Avatar billede medions Nybegynder
31. maj 2005 - 14:59 #2
Tror nu også det hedder:

$foresp = mysql_query("SELECT * FROM skoler WHERE postnr='".$_POST['postnr']."' ORDER BY navn");

og måske endda:
$foresp = mysql_query("SELECT * FROM skoler WHERE postnr=".$_POST['postnr']." ORDER BY navn");

Eftersom jeg ikke går ud fra dit postnummerfelt er et tekstfelt...

//>Rune
Avatar billede iznogood Nybegynder
31. maj 2005 - 15:12 #3
Jeg prøvede at sætte dit sidste forslag ind, da du har ret i, at postnummerfeltet ikke er et tekstfelt.

Jeg får følgende fejlmeddelelse:

Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in /hsphere/local/home/izn0good/driving.webfactory.dk/php/results.php on line 19

Her er linie 19 m.m.
while($row = mysql_fetch_array($foresp)) {
echo $row[navn];
echo "<br>";
echo $row[adresse];
echo "<br>";
echo $row[postnr]," ",$row[by],"<br>";
echo "<br>";

Det skal lige siges, at det hele virkede upåklageligt, når jeg manuelt erstattede **** med et alm. firecifret postnummer.

iznogood
Avatar billede iznogood Nybegynder
31. maj 2005 - 15:14 #4
Jeg har lavet en

echo $_POST["pnum"];

på results.php. Her viser den helt korrekt hvad der blev indtastet i formen på search.php.

Erstatter jeg manuelt **** med værdien af pnum, får jeg et fint resultat.
Avatar billede medions Nybegynder
31. maj 2005 - 15:20 #5
$foresp = mysql_query("SELECT * FROM skoler WHERE postnr=".$_POST['postnr']." ORDER BY `navn` DESC");

Prøv sådan...

- men prøv også lige og kom med den fulde SQL sætning...

//>Rune
Avatar billede medions Nybegynder
31. maj 2005 - 15:29 #6
Men ellers prøv med flg.:

$foresp = mysql_query("SELECT * FROM skoler WHERE postnr=".$_POST["postnr"]." ORDER BY `navn` DESC");

btw. Så tror jeg ikke du henter dine rows helt korrekt, prøv med flg. istedet for at undgå "kaninørerne"

echo $row["navn"];

//>Rune
Avatar billede iznogood Nybegynder
31. maj 2005 - 15:37 #7
Stadig samme fejl. Her er den fulde kode:

<?
mysql_connect("***","***","***");
mysql_select_db ("***");
echo "Forbindelse til databasen etableret";
echo "<br>";
echo $_POST["pnum"];
echo "<br>";

$foresp = mysql_query("SELECT * FROM skoler WHERE postnr=".$_POST['postnr']." ORDER BY navn");

while($row = mysql_fetch_array($foresp)) {
echo $row[navn];
echo "<br>";
echo $row[adresse];
echo "<br>";
echo $row[postnr]," ",$row[by],"<br>";
echo "<br>";
 
}

?>
Avatar billede iznogood Nybegynder
31. maj 2005 - 15:41 #8
Så lykkedes det. Fejlen bestod i at .$_POST['postnr'] ikke er det samme som .$_POST['pnum'].

Tak for hjælpen.
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