Avatar billede buch78 Novice
23. august 2003 - 22:01 Der er 8 kommentarer og
1 løsning

Fejl ved hentning af tabel indhold

Hejsa  jeg har lavet en side hvor man kan søge efter et postnr. Og skrive nye ind.. de dansk postnr. er ikke noget problem. Men jeg har et par stykker som ser sådan ud…

Hvordan får jeg lavet den sådan at jeg kan søge efter fx FR 110 

Tabel  mysql
Postnr  | city      |
FR 110  | Torshavn  |
FR 160  | Argir    |

Den kode som jeg trækker dem ud med ser sådan ud

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">

<html>
<head>
<title>Post Nr</title>
</head>
<BODY BGCOLOR="#cccccc"><body>
<center>
<br>
<B><I>Hvis du mangler et udenlask post nummer skrives 0 og søg</I></B>
<form method="POST" action="sog.php">
Søg Postnr: <input type="text" name="postnr" size="10">
<input type="submit" value="Søg">
<br>
<br>
<TABLE>
<tr><table border=1 width=500 cellspacing=1>
    <td width=80 ><B>Post nr</B></TD>
    <td width=240><B>By</B></TD>
    <td width=10 ><B>Land</B></TD>
</TR>
</TABLE>

<?
$db = mysql_connect("localhost","****","****") or die ("Could not connect to MySQL");
mysql_select_db("projekt");

$user =($_POST['postnr']);


$re = mysql_query("SELECT postnr, city, land FROM postnr
where postnr=$user");


echo "<table>";
while ($row = mysql_fetch_array($re)) {
echo "
<tr><table border=1 width=500 cellspacing=1>
  <td width=80> ".$row['postnr']."</td>
  <td width=240>".$row['city']."</td>
  <td width=10> ".$row['land']."</td>
</tr>";
}

echo "</table>";
mysql_close($db);
?>
</center>
</body>
</html>
Avatar billede schaefner Juniormester
23. august 2003 - 22:10 #1
Prøv:

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<title>Post Nr</title>
</head>

<body bgcolor="#cccccc"><body>

<center>
<br>
<b><i>Hvis du mangler et udenlask post nummer skrives 0 og søg</i></b>
<form method="POST" action="sog.php">
Søg Postnr: <input type="text" name="postnr" size="10">
<input type="submit" value="Søg">
<br>
<br>
<TABLE>
<tr><table border=1 width=500 cellspacing=1>
    <td width=80 ><B>Post nr</B></TD>
    <td width=240><B>By</B></TD>
    <td width=10 ><B>Land</B></TD>
</TR>
</TABLE>

<?
$dbcon = mysql_connect('localhost','****','****') or die ('Could not connect to MySQL');
mysql_select_db('projekt',$dbcon);

$zip = $_POST['postnr'];
if ($zip == 0) {
    $sqlstr = "SELECT postnr,city,land FROM postnr WHERE postnr REGEXP '[^0-9]'";
} else {
    $sqlstr = "SELECT postnr,city,land FROM postnr WHERE postnr=$zip";
}
$re = mysql_query($sqlstr);

echo '<table>';
while ($row = mysql_fetch_array($re)) {
    echo '<tr>
    <td width="80">'.$row['postnr'].'</td>
    <td width="240">'.$row['city'].'</td>
    <td width="10">'.$row['land'].'</td>
    </tr>';
}

echo '</table>';
mysql_close($dbcon);
?>
</center>
</body>
</html>
Avatar billede schaefner Juniormester
23. august 2003 - 22:12 #2
Går udfra at du vil hente alle udenlandske postnumre ud ved at skrive 0?
Avatar billede buch78 Novice
23. august 2003 - 22:14 #3
Nej det var faktisk ikke det jeg ville med det... det var bare for at få dem ud... jeg har prøvet at sætte din kode ind.. og når jeg så skriver fx FR 110 kommer alle de udenlanske
Avatar billede schaefner Juniormester
23. august 2003 - 22:15 #4
ok, men sådan stod det bare i teksten på siden :)
Avatar billede schaefner Juniormester
23. august 2003 - 22:16 #5
Prøv:

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<title>Post Nr</title>
</head>

<body bgcolor="#cccccc"><body>

<center>
<br>
<b><i>Hvis du mangler et udenlask post nummer skrives 0 og søg</i></b>
<form method="POST" action="sog.php">
Søg Postnr: <input type="text" name="postnr" size="10">
<input type="submit" value="Søg">
<br>
<br>
<TABLE>
<tr><table border=1 width=500 cellspacing=1>
    <td width=80 ><B>Post nr</B></TD>
    <td width=240><B>By</B></TD>
    <td width=10 ><B>Land</B></TD>
</TR>
</TABLE>

<?
$dbcon = mysql_connect('localhost','****','****') or die ('Could not connect to MySQL');
mysql_select_db('projekt',$dbcon);

$zip = $_POST['postnr'];
$sqlstr = "SELECT postnr,city,land FROM postnr WHERE postnr='$zip'";
$re = mysql_query($sqlstr);

echo '<table>';
while ($row = mysql_fetch_array($re)) {
    echo '<tr>
    <td width="80">'.$row['postnr'].'</td>
    <td width="240">'.$row['city'].'</td>
    <td width="10">'.$row['land'].'</td>
    </tr>';
}

echo '</table>';
mysql_close($dbcon);
?>

</center>
</body>
</html>
Avatar billede schaefner Juniormester
23. august 2003 - 22:17 #6
det var vidst også noget sludder det andet jeg havde skrevet :)
Avatar billede buch78 Novice
23. august 2003 - 22:20 #7
ja nu virker det som det skal... hvordan forklare du nemmest det du har lavet om..???
Avatar billede schaefner Juniormester
23. august 2003 - 22:22 #8
I stedet for: "SELECT postnr,city,land FROM postnr WHERE postnr=$zip"
er det nu: "SELECT postnr,city,land FROM postnr WHERE postnr='$zip'"

At variablen har ændret navn har ingen betydning, synes bare ikke $user virkede særlig logisk :)

mvh. Jesper Sørensen
Avatar billede buch78 Novice
23. august 2003 - 22:24 #9
Tak for svaret
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