Avatar billede dklap3 Nybegynder
24. marts 2005 - 14:10 Der er 6 kommentarer og
1 løsning

Hjælp til at vise kun en række fra tabel

Tror mit problem er ret enkelt, er dog ret ny inden for php, og  jeg kan ikke få det til at virke. Jeg har tabel i min db med følgende rækker: id, navn, adresse, aar, etager.

Hver bygning har deres eget id, og jeg skal have det sådan at når jeg skriver f.eks. bygning.php?id=45 bliver kun bygningen med id 45 udskrevet i min tabel.

Koden:

<?
$test = mysql_query("SELECT `id` , `navn`  , `adresse` , `aar` , `etager`
FROM `bygninger` LIMIT 1") or die (mysql_error());
?>

<?
$i=0;
while ($row = mysql_fetch_array($test)) {
$id = $row["id"];
{ ?>

<body>
<table width="400" border="0" cellspacing="0" cellpadding="0">
  <tr bgcolor="#FFFFFF">
    <td><strong><?=$row["navn"]?></strong></td>
    <td>&nbsp;</td>
  </tr>
  <tr bgcolor="#0099CC">
    <td>&nbsp;</td>
    <td>&nbsp;</td>
  </tr>
  <tr bgcolor="#FFFFFF">
    <td>Adresse:</td>
    <td><?=$row["adresse"]?></td>
  </tr>
  <tr bgcolor="#FFFFFF">
    <td>Bygget &aring;r:</td>
    <td><?=$row["aar"]?></td>
  </tr>
  <tr bgcolor="#FFFFFF">
    <td>Antal Etager:</td>
    <td><?=$row["etager"]?></td>
  </tr>
  <tr bgcolor="#FFFFFF">
    <td>Bygnings ID:</td>
    <td><?=$row["id"]?></td>
  </tr>
  <tr bgcolor="#0099CC">
    <td>&nbsp;</td>
    <td>&nbsp;</td>
  </tr>
</table>
<? }} ?>


Kan ikke finde ud af hvad der er galt, men lige nu viser den kun én (hvilket den også skal). Problemet er bare at det altid er id 1 den viser, også selvom jeg skriver bygning.php?id=2
Avatar billede dklap3 Nybegynder
24. marts 2005 - 14:12 #1
Ups en fejl sneg sig ind: "Jeg har tabel i min db med følgende rækker: id, navn, adresse, aar, etager." skulle have været "Jeg har tabel i min db med følgende kolonner: id, navn, adresse, aar, etager."
Avatar billede coderdk Praktikant
24. marts 2005 - 14:13 #2
$sql = sprintf( "SELECT `id` , `navn`  , `adresse` , `aar` , `etager`
FROM `bygninger` WHERE `id` = '%s'", mysql_escape_string( $_GET['id'] ) );
$test = mysql_query($sql) or die (mysql_error());

og resten bare det samme - Dog har du ikke brug for de inderste { og }
Avatar billede sostack Nybegynder
24. marts 2005 - 14:14 #3
Du skal bruge dit id til at fortælle MySql hvor du vil starte:
Altså $test = mysql_query("SELECT `id` , `navn`  , `adresse` , `aar` , `etager`
FROM `bygninger` LIMIT " . $_REQUEST["id"] . ", 1") or die (mysql_error());

//sostack
Avatar billede dklap3 Nybegynder
24. marts 2005 - 14:16 #4
Perfekt, det virkede med det samme coderdk. Tak for det hurtige svar.
Avatar billede coderdk Praktikant
24. marts 2005 - 14:17 #5
sostack, Nej, læs om LIMIT igen, syntaksen er LIMIT <start>, <antal> - start er ikke en ID, men bare en position. Han vil gerne bruge WHERE `id` = $id
Avatar billede coderdk Praktikant
24. marts 2005 - 14:17 #6
Cool. Held og lykke, PHP er lækkert ;)
Avatar billede dklap3 Nybegynder
24. marts 2005 - 14:22 #7
Tak for det, og ja php er det helt sikkert lækkert:-) Jeg har sikkert også et andet spørgsmål ang. nogle billeder der skal forbindes til disse bygninger på samme website, men det må lige vente lidt.
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