Avatar billede clausga Nybegynder
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 ?
Avatar billede tigertool Nybegynder
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?
Avatar billede clausga Nybegynder
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'
Avatar billede tigertool Nybegynder
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 ' '.
Avatar billede tigertool Nybegynder
25. januar 2005 - 19:32 #4
Giver din SQL mere end en række?
Avatar billede clausga Nybegynder
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
Avatar billede tigertool Nybegynder
25. januar 2005 - 20:26 #6
Må $txt være et array?
Avatar billede clausga Nybegynder
25. januar 2005 - 21:21 #7
det skal bare være sådan at det kan udskrives med echo i en email foreksempel...
Avatar billede tigertool Nybegynder
25. januar 2005 - 21:55 #8
Det kan du jo også med et array, hvis du løber igennem dette.
Avatar billede clausga Nybegynder
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 ?
Avatar billede tigertool Nybegynder
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)
Avatar billede tigertool Nybegynder
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
Avatar billede clausga Nybegynder
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...
Avatar billede tigertool Nybegynder
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.
Avatar billede hmortensen Nybegynder
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
Avatar billede clausga Nybegynder
25. januar 2005 - 22:40 #15
hvad betyder de 2 . . omkring $kundeid
Avatar billede hmortensen Nybegynder
25. januar 2005 - 22:46 #16
Det er bare adskillelse af variabler og tekst strenge:

echo "Streng".$variabel."en streng til";
Avatar billede clausga Nybegynder
25. januar 2005 - 22:56 #17
når jeg siger echo $txt

skriver den: 4

hvorfor ?
Avatar billede clausga Nybegynder
25. januar 2005 - 22:59 #18
4 passer med de antal vare der er!
Avatar billede hmortensen Nybegynder
25. januar 2005 - 23:06 #19
Post lige din kode som den er nu
Avatar billede clausga Nybegynder
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].", ";
}
Avatar billede tigertool Nybegynder
25. januar 2005 - 23:14 #21
Min fejl

$txt += $row[0]." stk ".$row[1].", ";

erstattes med:

$txt .= $row[0]." stk ".$row[1].", ";
Avatar billede hmortensen Nybegynder
25. januar 2005 - 23:17 #22
Ja, .= samler en streng og += lægger tallet sammen med det efterfølgende tal.
Avatar billede clausga Nybegynder
25. januar 2005 - 23:20 #23
TAK nu virker det, smid et svar det er point tid :)
Avatar billede tigertool Nybegynder
25. januar 2005 - 23:21 #24
svar
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