Avatar billede lesp Nybegynder
30. december 2007 - 22:16 Der er 11 kommentarer og
1 løsning

Session_id igen

Jeg vil gerne have udskrevet alt fra tabellen hvor et givent session_id er i af felterne. Det kan jeg bare ikke med følgende kode.

<?
session_start();

$phpses = session_id();

echo "$phpses<br>";


$foresp = mysql_query("SELECT * FROM kurv WHERE sesid = '$phpses'");
$data = mysql_fetch_array($foresp);



echo "$data[id]";;

?>
Avatar billede jakobdo Ekspert
30. december 2007 - 22:22 #1
Prøv at ret dine 3 sidste linjer til:

$foresp = mysql_query("SELECT * FROM kurv WHERE sesid = '$phpses'");
if(mysql_num_rows($foresp) > 0)
{
    while($data = mysql_fetch_array($foresp))
    {
        echo '<pre>';
        print_r($data);
        echo '</pre>';
    }
}
Avatar billede lesp Nybegynder
30. december 2007 - 22:24 #2
Ja men hvis id'et skal udskrives?
Avatar billede leif Seniormester
30. december 2007 - 22:29 #3
Så udskriver du blot det som du hele tiden har gjort, men bare inde i løkken.
Avatar billede lesp Nybegynder
30. december 2007 - 22:29 #4
Altså sådan her?

$foresp = mysql_query("SELECT * FROM kurv WHERE sesid = '$phpses'");
if(mysql_num_rows($foresp) > 0)
{
    while($data = mysql_fetch_array($foresp))
    {
        echo '<pre>';
        print_r($data[id]);
        echo '</pre>';
    }
}
?>
Avatar billede leif Seniormester
30. december 2007 - 22:31 #5
echo '<pre>';
        echo $data[id];
        echo '</pre>';
Avatar billede lesp Nybegynder
30. december 2007 - 22:35 #6
Der kommer intet output med følgende kode:

$foresp = mysql_query("SELECT * FROM kurv WHERE sesid = '$phpses'");
if(mysql_num_rows($foresp) > 0)
{
    while($data = mysql_fetch_array($foresp))
    {
        echo '<pre>';
        echo $data[id];
        echo '</pre>';
    }
}
?>
Avatar billede leif Seniormester
30. december 2007 - 22:39 #7
Så er der næsten med garanti fordi at der ikke er nogen rækker i tabellen.
Avatar billede leif Seniormester
30. december 2007 - 22:41 #8
$foresp = mysql_query("SELECT * FROM kurv WHERE sesid = '$phpses'") or die (mysql_error());


Det er altid en god idé at smide en  or die (mysql_error() på alle sine SQL kald, for bedre fejlfinding hvis det er database fejl
Avatar billede leif Seniormester
30. december 2007 - 22:42 #9
Men du kan jo fejlsøge lidt:
$foresp = mysql_query("SELECT * FROM kurv WHERE sesid = '$phpses'");

$numrows = mysql_num_rows($foresp);
echo "Antal udtrækket linier: ".$numrows;

if(mysql_num_rows($foresp) > 0)
{
    while($data = mysql_fetch_array($foresp))
    {
        echo '<pre>';
        echo $data[id];
        echo '</pre>';
    }
}
Avatar billede leif Seniormester
30. december 2007 - 22:42 #10
Så vil den udskrive hvor mange linier de har udtrukket fra databasen
Avatar billede lesp Nybegynder
30. december 2007 - 23:44 #11
Tro det eller ej, så glemte jeg bare connect-oplysningerne :(

Læg et svar.
Avatar billede leif Seniormester
30. december 2007 - 23:48 #12
Ja, se det er jo en rigtig god idé at huske dem ! Det er derfor jeg smider " or die (mysql_error())" på mine kald så bliver man opmærksom på sådanne fejl hurtigt.
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