Avatar billede frasa Juniormester
13. april 2009 - 20:42 Der er 7 kommentarer og
1 løsning

Udtrække fra mysql !

Sidder og har brugt op mod 10 timer på dette, som jeg har kigget mig blind på. Jeg har et udtræk fra en mysql database, som jeg godt kan få til at virke da det kun er nogle enkelte informationer der skal vises! Mit problem er, at jeg vil linke til de resterende informationer, og kan ikke få ?id= til at fungere. Jeg er sikker på at det ikke er det store problem, men jeg har gennemsøgt eksperten og googlet problemet lidt for længe nu! Håber der er en stærk php/mysql programmør som kan hjælpe!

Min kode som får vist udtrækkene fra mysql helt fint:
<?php

//forbind til databasen
mysql_connect("localhost", "root", "") or die(mysql_error());
mysql_select_db("service") or die(mysql_error());

//data hentes ud
$resultat = mysql_query('select servicenummer, regaf, knavn from arbejdsseddel');
?>
<table>
<tr><td>Servicenummer:</td><td>Registreret af:</td><td>Arbejdsseddel:</td></tr>
<?php
// Køres igennem for hver række
while ($raekke = mysql_fetch_array($resultat)) {
  extract($raekke);
?>
<tr align="center">
<td><?php echo $servicenummer; ?></td>
<td><?php echo utf8_decode($regaf); ?></td>
<td><?php echo utf8_decode($knavn); ?></td>
<td><a href="downmore_new.php?id=<?php echo $raekke['servicenummer'];?>" >Mere info</a></td>
</tr>
</table>
<?php
};
?>

Her er så det som driller:
<?php
global $id;
$db = mysql_connect("localhost","root","");
mysql_select_db("service");

if (isset($_REQUEST['servicenummer']))
{
$sql = "SELECT kadr FROM arbejdsseddel ";
$sql .= "WHERE servicenummer='$id' ";
$query = mysql_query($sql);
$results = mysql_fetch_array($query);
echo ($results);
} else
echo "INGEN INFO.";

mysql_close();
?>

Please help!
Avatar billede encorez Nybegynder
13. april 2009 - 20:54 #1
I den del som driller, hvor går det galt? Kommer du ind i din IF? Og får den rigtigt fat i din globale ID?. Prøv evt. at fejlsøge sådan?

if (isset($_REQUEST['servicenummer']))
{
echo "Er inde i IF<br>";
$sql = "SELECT kadr FROM arbejdsseddel ";
$sql .= "WHERE servicenummer='$id' ";
echo "SQL: $sql";

Tjek at den kommer ind i IF og ser SQL rigtig ud? Er ID kommet med?

Jeg har aldrig brugt _REQUEST i min kodning. Kan du kort sige hvad den gør?
Avatar billede jakobdo Ekspert
13. april 2009 - 20:56 #2
Slet linjen:

global $id;

og ret:

if (isset($_REQUEST['servicenummer']))
{
$sql = "SELECT kadr FROM arbejdsseddel ";
$sql .= "WHERE servicenummer='$id' ";

til:
if(isset($_GET['id']) && is_numeric($_GET['id']))
$sql = "SELECT kadr FROM arbejdsseddel ";
$id = intval($_GET['id']);
$sql .= "WHERE servicenummer='$id' LIMIT 1";

Så burde det virke.

Måske du dog lige skal rette:
echo ($results);
til:
print_r($results);
eller:
echo ($results[0]);
Avatar billede frasa Juniormester
13. april 2009 - 21:17 #3
Tak for de hurtige inputs! Jeg har prøvet det som jakobdo skriver, men nu får jeg en fejlmeddellese om mysql_fetch_array ikke er OK.
Til encorez...
Jeg kom igennem til "INGEN INFO". altså ingen output!
Avatar billede jakobdo Ekspert
13. april 2009 - 21:24 #4
Prøv også at ret:
$query = mysql_query($sql);
til:
$query = mysql_query($sql) or die(mysql_error());
Avatar billede frasa Juniormester
13. april 2009 - 21:30 #5
Tak! Jakobdo...
Det var lige det jeg manglede!
Smid et svar, og de 200 point er dine!
Avatar billede jakobdo Ekspert
13. april 2009 - 21:37 #6
Det gav vel en fejl, som du så fik rettet ?
For det bør ikke gøre en forskel, som sådan.

Men du får et svar.
Avatar billede frasa Juniormester
13. april 2009 - 21:40 #7
Nej det var det der manglede.... har ikke lige tjekket om der evt. var et ; for lidt!

Men tusind tak for hjælpen.... hader at bruge så lang tid med at google uden at finde svar!
Avatar billede jakobdo Ekspert
13. april 2009 - 21:43 #8
Jamen, så takker jeg for point.
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

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