Avatar billede woogoo Nybegynder
12. juni 2007 - 20:03 Der er 8 kommentarer og
1 løsning

Find række i MySQL ud fra ID som står i adresselinjen

Hey eksperter.

Jeg har et lille problem.

jeg skal have udskrevet navnet der passer til det id, som jeg har valgt i adresselinjen. Lige pt. er jeg ikke sikker på om det kaldes en variabel eller hvad det er, men i ved vel hvad jeg mener.

altså... test.php?id=1.. og så skal den gå ind i databasen og finde de ting der står i tabellen under det ID.. der er bl.a. navn, overskrift, tekst og mail..

og så skal jeg kunne udskrive det på skærmen. Hvordan gør jeg det?..

På forhånd tak!
Avatar billede vodkaboii Nybegynder
12. juni 2007 - 20:08 #1
$connect = mysql_pconnect($host, $user, $pass) or die(mysql_error());
$sql = "SELECT `navn` FROM `tabel` WHERE id='" . $_GET['id'] . "'";
$result    = mysql_query($sql) or die($sql . "<br>FEJL: " . mysql_error());
Avatar billede woogoo Nybegynder
12. juni 2007 - 20:10 #2
yea.. men hvordan udskriver jeg den? Den gider ikke rigtig udskrive noget på skærmen hvis jeg prøver med:

echo $row['navn'];
Avatar billede pidgeot Nybegynder
12. juni 2007 - 20:15 #3
//$result=mysql_query(...)
$row=mysql_fetch_assoc($result);
echo $row['navn'];
//(...)

Og brug ALTID mysql_connect i stedet for mysql_pconnect med mindre du har en meget god grund (dvs. hvis det tager meget lang tid at oprette forbindelsen).
Avatar billede vodkaboii Nybegynder
12. juni 2007 - 20:22 #4
Jeg bruger det kun fordi jeg bruger en funktion til at oprette forbindelse og har også en funktion til at sende sql-commands, så for ikke at have 100 fo´rbindelser så bruger jeg pconnect -:)
Avatar billede woogoo Nybegynder
12. juni 2007 - 20:24 #5
Okay.. mit kode ser sådan ud nu:

<?php
@include('config1.inc');
con_db();
$query = "SELECT `navn` FROM `tabel` WHERE id='" . $_GET['id'] . "'";
$result=mysql_query($query)
$row=mysql_fetch_assoc($result);
echo $row['navn'];
echo $id."<br>";
close();

?>

og den kommer med denne fejl:

Parse error: syntax error, unexpected T_VARIABLE in C:\wamp\www\logbog\test.php on line 6
Avatar billede pidgeot Nybegynder
12. juni 2007 - 20:55 #6
Du mangler semikolonnet efter mysql_query().

Vodkaboii, jeg vil foreslå du læser op på hvad meningen med persistent connections er, for det lyder ikke som om du har fattet det (hvilket vil sige det sandsynligvis ikke er noget godt valg i din situation).
Avatar billede jakobdo Ekspert
12. juni 2007 - 21:16 #7
Jeg tror nu jeg ville lave lidt mere kontrol på det, f.eks. i stil med:

if(is_numeric($_GET['id']))
{
$id = intval($_GET['id']);
$query = mysql_query("SELECT * FROM tabel_navn WHERE id = $id LIMIT 1");
if(mysqll_num_rows($query)==1)
{
$row = mysql_fetch_assoc($query);
echo $row['navn'] . '<br />';
echo $row['email'] . '<br />';
//OSV...
}
}
Avatar billede woogoo Nybegynder
12. juni 2007 - 21:19 #8
Ah.. Okay! Det virker nu! :) Hvis du smider et svar pidgeot så får du point! ;)
Avatar billede pidgeot Nybegynder
12. juni 2007 - 21:45 #9
Værsgo - og jakob har i øvrigt helt relt, man skal altid validere *alt* der kommer udefra.
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