09. marts 2006 - 10:29
Der er
14 kommentarer og 1 løsning
Hente keys i Array
Jeg har nedenstående, meeeen der kommer intet ud af arrayet, men session viser at der er noget i arrayet, Hvad gør jeg forkert? if(isset($_SESSION['shopcart']) ) { $ids = array_keys($_SESSION['shopcart']); $sql = "SELECT id, varenavn, vorpris FROM vare WHERE id IN (" . join(',',$ids) . ") ORDER BY varenavn"; $res = mysql_query($sql); while($row = mysql_fetch_row($res)) { echo "<pre>"; print_r($row); echo "</pre>"; } }
Annonceindlæg tema
Offentlig digitalisering
Fra effektivisering til digital suverænitet. Hvordan skaber det offentlige en digital fremtid med AI, sikkerhed og kontrol i centrum?
Slettet bruger
09. marts 2006 - 10:31
#1
Hvad ligger der i din sql-streng? echo $sql;
09. marts 2006 - 10:34
#2
Og måske en var_dump($_SESSION['shopcart']) - bare fordi den er sat, så er den jo ikke nødvendigvis et array (endsige et med indhold).
09. marts 2006 - 10:38
#3
Når jeg køre en >> var_dump($_SESSION['shopcart']) får jeg : array(1) { [""]=> int(0) } Der er intet i $sql
09. marts 2006 - 10:43
#4
Så er det jo også et tomt array? Så kan du vel ikke forvente, at der kommer output fra din sql? :)
09. marts 2006 - 10:49
#5
Men når jeg kører en: echo "<pre>"; print_r($_SESSION['shopcart']); echo "</pre>"; så viser den: Array ( [] => 0 [19] => 1 )
09. marts 2006 - 10:53
#6
Og når den har det indholdet, hvad er indholdet af $sql så? (altså efter du har defineret $sql)
09. marts 2006 - 11:00
#7
så sker der noget $sql er lige med: SELECT id, varenavn, vorpris FROM vare WHERE id IN (,13,12,9,1) ORDER BY varenavn
09. marts 2006 - 11:09
#8
Der må gå noget galt efter $sql, for der kommer ikke noget ud som følger: if(isset($_SESSION['shopcart']) ) { $ids = array_keys($_SESSION['shopcart']); $sql = "SELECT id, varenavn, vorpris FROM vare WHERE id IN (" . join(',',$ids) . ") ORDER BY varenavn"; $res = mysql_query($sql); while($row = mysql_fetch_row($res)) { print stripslashes($row['varenavn']) . ': ' . $_SESSION[$row['id']] . ' stk<br/>'; } } else { print "Tom"; }
09. marts 2006 - 11:16
#9
Der er sgu nok en sql-fejl, for: SELECT id, varenavn, vorpris FROM vare WHERE id IN (,13,12,9,1) ORDER BY varenavn Er ikke gyldig sql. Du kan ikke have et tomt element forrest i dit array :) Prøv med: $ids = array_filter(array_keys($_SESSION['shopcart']), create_function('$a','return !empty($a);'); $sql = "SELECT id, varenavn, vorpris FROM vare WHERE id IN (" . join(',',$ids) . ") ORDER BY varenavn"; print "SQL-sætningen er: '".$sql."'<br>"; $res = mysql_query($sql) or die("Mysql-fejl: ".mysql_error()); while($row = mysql_fetch_row($res)) { print stripslashes($row['varenavn']) . ': ' . $_SESSION[$row['id']] . ' stk<br/>'; } :) -- Morten Barklund
09. marts 2006 - 11:28
#10
Hmm nu kommer der intet på hele siden ? :-) er det noget med tuborghattene ?
09. marts 2006 - 11:33
#11
Noget output kommer der vel - der er jo nok en sql-fejl, som fanges af die - kig på kilden til din side?
09. marts 2006 - 11:44
#12
Det er kilden: <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"> <HTML><HEAD> <META http-equiv=Content-Type content="text/html; charset=windows-1252"></HEAD> <BODY></BODY></HTML>
09. marts 2006 - 11:57
#13
Det har din browser selv lavet - det kan vel ikke være det eneste output? I så fald prøv at fjerne min linje ($ids = ...) og erstatte den med din egen.
16. november 2006 - 12:58
#14
send et svar ...
17. november 2006 - 00:18
#15
Oki
Vi tilbyder markedets bedste kurser inden for webudvikling