25. januar 2005 - 18:44
Der er
23 kommentarer og 1 løsning
Udskriv linier fra database i variabel
Jeg har en database der hedder ordre, derfra her jeg nogle linier jeg gerne vil jeg skrevet ud i en variabel linierne er fx, ID 2,7 & 8, og feltet hedder ordre txt -> de skal skrives ud i en variabel der hedder $txt hvordan ?
Annonceindlæg fra Computerworld
25. januar 2005 - 19:03
#1
Opretter forbindelse til databasen, udfører en SQL og tildeler værdien til din variabel. hvilken database benytter du, og hvad er din struktur i tabellen?
25. januar 2005 - 19:26
#2
MYSQL.... tabael der hedder ordre... med et felt der hedder ordretxt og det skal jeg så have skrevet ud WHERE kundeid = '$kundeid'
25. januar 2005 - 19:31
#3
Så bliver det vel noget ala: $result = mysql_query("SELECT ordretxt FROM ordre WHERE kundeid = ".$kundeid.";"); while ($row = mysql_fetch_row($result)) { $txt = $row[0]; } Problemet er bare hvis din SQL giver mere end en række i resultat. Desuden hvis feltet kundeid er af datatypen INT behøver du ikke bruge ' '.
25. januar 2005 - 19:32
#4
Giver din SQL mere end en række?
25. januar 2005 - 19:46
#5
ja det er jo ikke sikkert det kun er en række der skal skrives ud kan jo godt være der er flere linier i ordren
25. januar 2005 - 20:26
#6
Må $txt være et array?
25. januar 2005 - 21:21
#7
det skal bare være sådan at det kan udskrives med echo i en email foreksempel...
25. januar 2005 - 21:55
#8
Det kan du jo også med et array, hvis du løber igennem dette.
25. januar 2005 - 22:00
#9
skal udskrive det sådan her fx: Panasonic 37" Plasma, Panasonic DVD optager, Panasonic Video osv... hvordan ser koden ud lavet med et array ? er ikke inde i de kode med array kan du ikke lavet et samlet ekspempel ?
25. januar 2005 - 22:09
#10
hvis du skal have dataen ud som et array (fra MySQL) kan dette gøres således: $result = mysql_query("SELECT ordretxt FROM ordre WHERE kundeid = ".$kundeid.";"); while ($row = mysql_fetch_row($result)) { $array[] = $row[0]; } Så har du skabt et array kaldet $array som indeholder dataen fra databasen. Du kan nu se de enkelte data ved at kalde ind på en bestemt pos i arrayet f.eks.: echo $array[0]; Og så videre. Husk at array starter på pos 0. Hvis du ønsker at udskrive hele arrayet kan dette gøres ved at benytte: print_r($array); (Det kan være en klar fordel at smide en <pre> før man benytter en print_r) Hvis du ønsker at gennemløbe arrayet kan dette gøres således: for ($i = 0; $i < sizeof($array); $i++) { echo $array[$i]; } (altså ved hjælp af en simpel løkke)
25. januar 2005 - 22:09
#11
Hvis du altid ønsker dataen i en lang liste adskildt med komma har jeg også en løsning på det :P
25. januar 2005 - 22:17
#12
det skal altid bare vises i en lang liste adskilt med komma ;) og så skal antal også med... det felt hedder antal, så det kommer til at stå: 2 stk Panasonic tv, 3 stk panasonic video...
25. januar 2005 - 22:20
#13
Jamen den kan da løses forholdsvis simpel, sådan at den lange liste bliver en variabel du bare kan smide ud: $txt = ""; $result = mysql_query("SELECT antal, ordretxt FROM ordre WHERE kundeid = ".$kundeid.";"); while ($row = mysql_fetch_row($result)) { $txt += $row[0]." stk ".$row[1].", "; } Tjek lige fejl i koden, jeg gad ikke teste det.
25. januar 2005 - 22:22
#14
Sådan her får du alle de rækker du skal bruge: SELECT antal, ordretxt FROM ordre WHERE kundeid IN (".$kundeid.") SÅ kan du bare samle dem op i en variabel i en while løkke
25. januar 2005 - 22:40
#15
hvad betyder de 2 . . omkring $kundeid
25. januar 2005 - 22:46
#16
Det er bare adskillelse af variabler og tekst strenge: echo "Streng".$variabel."en streng til";
25. januar 2005 - 22:56
#17
når jeg siger echo $txt skriver den: 4 hvorfor ?
25. januar 2005 - 22:59
#18
4 passer med de antal vare der er!
25. januar 2005 - 23:06
#19
Post lige din kode som den er nu
25. januar 2005 - 23:13
#20
$txt = ""; $result = mysql_query("SELECT antal, varetitel FROM ordre WHERE ordreid = '$okey' && unikkode = '$ukey'"); while ($row = mysql_fetch_row($result)) { $txt += $row[0]." stk ".$row[1].", "; }
25. januar 2005 - 23:14
#21
Min fejl $txt += $row[0]." stk ".$row[1].", "; erstattes med: $txt .= $row[0]." stk ".$row[1].", ";
25. januar 2005 - 23:17
#22
Ja, .= samler en streng og += lægger tallet sammen med det efterfølgende tal.
25. januar 2005 - 23:20
#23
TAK nu virker det, smid et svar det er point tid :)
25. januar 2005 - 23:21
#24
svar
Vi tilbyder markedets bedste kurser inden for webudvikling