Avatar billede Claus Mester
30. juli 2005 - 12:02 Der er 18 kommentarer og
2 løsninger

hent data og vis øv

Hejsa.

Kan i umiddelbart gennemskue, hvorfor dette script ikke fungerer:

<html>
<body>
<?
mysql_connect('localhost', 'root', '');
mysql_select_db('Forening');
if( isset($_POST[navn])){
    $foresp = mysql_query(
    "SELECT navn, vejnavn, postnummer " .
    "FROM medlemmer " .
    "WHERE navn = " . $_POST[navn]);
    while($post = mysql_fetch_array($foresp))
        echo "<b>Navn</b>: $post[navn]<br><b>Vejnavn</b>: $post[vejnavn]<br>
        <b>Postnummer</b>: $post[postnummer]<br><br>\n";
echo mysql_error();
}
?>
<form method="post" action="<? echo $PHP_SELF; ?>">
<select name="navn">
<?
$foresp = mysql_query("SELECT navn FROM medlemmer");
while($post = mysql_fetch_array($foresp))
    echo "<option value=\"$post[navn]\n";
?>
</select>
<input type="submit" value="slå op">
</form>
</body>
</html>

nicolaus
Avatar billede leif Seniormester
30. juli 2005 - 12:04 #1
Hvad melder den af fejl eller hvad gør den ikke ? Så er det nok lidt nemmere at fejlfinde ?
Avatar billede nielle Nybegynder
30. juli 2005 - 12:06 #2
<html>
<body>
<?
mysql_connect('localhost', 'root', '');
mysql_select_db('Forening');
if (isset($_POST[navn]))
{
    $foresp = mysql_query(
    "SELECT navn, vejnavn, postnummer " .
    "FROM medlemmer " .
    "WHERE navn = " . $_POST[navn]) or die(mysql_error());

    while ($post = mysql_fetch_array($foresp))
    {
            echo "<b>Navn</b>: $post[navn]<br><b>Vejnavn</b>: $post[vejnavn]<br>
            <b>Postnummer</b>: $post[postnummer]<br><br>\n";
    }
}
?>
<form method="post" action="<? echo $PHP_SELF; ?>">
<select name="navn">
<?
$foresp = mysql_query("SELECT navn FROM medlemmer");
while ($post = mysql_fetch_array($foresp))
    echo "<option value=\"$post[navn]\n";
?>
</select>
<input type="submit" value="slå op">
</form>
</body>
</html>
Avatar billede nielle Nybegynder
30. juli 2005 - 12:06 #3
Du manglede i hvert fald et sær tuborg-paenteser ved den første while-løkke.
Avatar billede leif Seniormester
30. juli 2005 - 12:08 #4
Du behøver da ikke tuborg klammer når det kun er 1 linie ! Har jeg da altid lært !
Avatar billede Claus Mester
30. juli 2005 - 12:09 #5
leif; viser som det eneste på siden en tom dropdown menu.
nielle; virker fortsat ikke
Avatar billede nielle Nybegynder
30. juli 2005 - 12:10 #6
Nej man behøver ikke tuborg-parenteser ved en linje, men jeg havde faktisk ikke set at det var en og samme echo-linje i stedet for to :^|
Avatar billede nielle Nybegynder
30. juli 2005 - 12:12 #7
Jeg kan se en anden fejl:

Ret:

... WHERE navn = " . $_POST[navn]);

- til:

WHERE navn = '" . $_POST[navn]) . "'";

Der skal være enkelt-pinger rundt om tekst.
Avatar billede leif Seniormester
30. juli 2005 - 12:12 #8
echo "<option value=\"$post[navn]\n";
til
echo "<option value=\"$post[navn]\">\n";
Avatar billede nielle Nybegynder
30. juli 2005 - 12:15 #9
Skulle have været til:

WHERE navn = '" . $_POST[navn] . "'");
Avatar billede nielle Nybegynder
30. juli 2005 - 12:18 #10
... og så alle fejlrettelser samlet på et sted :^)

<html>
<body>
<?
mysql_connect('localhost', 'root', '');
mysql_select_db('Forening');
if (isset($_POST[navn]))
{
    $foresp = mysql_query("SELECT navn, vejnavn, postnummer FROM medlemmer WHERE navn = '" . $_POST[navn] . "'") or die(mysql_error());
    while ($post = mysql_fetch_array($foresp))
        echo "<b>Navn</b>: $post[navn]<br><b>Vejnavn</b>: $post[vejnavn]<br><b>Postnummer</b>: $post[postnummer]<br><br>\n";
}
?>
<form method="post" action="<? echo $PHP_SELF; ?>">
<select name="navn">
<?
$foresp = mysql_query("SELECT navn FROM medlemmer");
while ($post = mysql_fetch_array($foresp))
    echo "<option value=\"$post[navn]\">\n";
?>
</select>
<input type="submit" value="slå op">
</form>
</body>
</html>
Avatar billede leif Seniormester
30. juli 2005 - 12:18 #11
Vrøvler.

Ret: echo "<option value=\"$post[navn]\n";
Til: echo echo "<option>$post[navn]</option>\n";
Avatar billede nielle Nybegynder
30. juli 2005 - 12:21 #12
"echo echo" ;^)
Avatar billede leif Seniormester
30. juli 2005 - 12:22 #13
:D

Det skal selvfølgelig være:
echo "<option>$post[navn]</option>\n";

og ikke med dobbelt echo !
Avatar billede nielle Nybegynder
30. juli 2005 - 12:23 #14
Den anden version vil også virke - de fleste browsere er rimeligt large mht. om option afsluttes med en </option>. Men det er bestemt ikke pæn html-kode!
Avatar billede leif Seniormester
30. juli 2005 - 12:25 #15
nielle -> Du skriver selv de fleste browsere ! Hvorfor så ikke lave den korrekte kode ?
Avatar billede nielle Nybegynder
30. juli 2005 - 12:28 #16
Det vil jeg heller ikke argumentere i mod at man skal - jeg sagde bare at den faktisk ville virke.
Avatar billede Claus Mester
30. juli 2005 - 13:59 #17
echo echo = STORE BOGSTAVER eller ;D

Nå. Scriptet virker perfekt - bygget med </option>.

Smid et par svar og så takker jeg for input!
Avatar billede nielle Nybegynder
30. juli 2005 - 14:02 #18
Svar :^)
Avatar billede leif Seniormester
30. juli 2005 - 14:04 #19
Svar.


Nu skal I være sjove ! Jeg fik ikke korrektur læst min kommentar ! Men jeg tror heller ikke at jeg var stået helt op !
Avatar billede leif Seniormester
30. juli 2005 - 14:04 #20
Husker lige at trykke på Svar prikken !
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