Avatar billede caturn Nybegynder
09. maj 2003 - 20:10 Der er 13 kommentarer og
1 løsning

Udtræk af flere rækker fra mysql

Hej!

Jeg har lavet et bruger system med internt mail system.
Eller det vil sige: Jeg prøvede at lave et men jeg fik problemer da den skulle hente oplysninger om mails til en.
Min forespørgelse var noget lignende:
select * from post where to = $info['user']

Den returnere højst sandsynligt flere rækker.
Hvordan får jeg det ind i noget der er let at arbejde med?
Gerne et to dimensionelt array.

Håber i kan hjælpe.
Avatar billede erikjacobsen Ekspert
09. maj 2003 - 20:13 #1
fx
$result=mysql_query("select ...") or die(mysql_error()):
$rows = array();
while ($rows[]=mysql_fetch_array($result));

så har du dit 2-dim array i $rows
Avatar billede jakoba Nybegynder
09. maj 2003 - 20:36 #2
i din streng:
    select * from post where to = $info['user']
er der 2 potentielle fejl.
  feltet to ser ud til at være et char felt (med bogstaver i) hvis det er skal der anførselstegn og værdien.
  indeni en streng kan du ikke brug ' omkring user i dit array
så nok snarere:
$sql_kommando = "select * from post where to = '$info[user]'";

mvh JakobA
Avatar billede erikjacobsen Ekspert
09. maj 2003 - 20:40 #3
Ok, det var et nummer for smart - man skal huske at springe den
sidste indgang over. Det bør være:

$result=mysql_query("select ...") or die(mysql_error()):
$rows = array();
while ($row=mysql_fetch_array($result)) {
  $rows[]=$row;
}
Avatar billede caturn Nybegynder
11. maj 2003 - 11:48 #4
erikjacobsen>> Når jeg kører scriptet får jeg den her fejl:

Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in /usr/home/sites/caturn.dk/www/spil/mail.php on line 39

Scriptet ser sådan ud:

$result = mysql_query("select from, date, subject, text, status from post where to = $info['user']");
$rows = array();
while ($row=mysql_fetch_array($result)) {
  $rows[]=$row;
}
Avatar billede jakoba Nybegynder
11. maj 2003 - 11:58 #5
pas på med dine navne. 'to' er et reserveret ord, og må ikke bruges som navn. du kunne velt kalde det felt for 'til' istedetfor.
http://www.mysql.com/doc/en/Reserved_words.html

mvh JakobA
Avatar billede jakoba Nybegynder
11. maj 2003 - 12:01 #6
PS 'text' er også forbudt i de fleste versioner af SQL, så det ville være en god vane at lade være med at bruge det ord som feltnavn heller.
Avatar billede jakoba Nybegynder
11. maj 2003 - 12:02 #7
og 'from' er heller ikke et ord der må bruges som navn. SQL har ret mange reservered ord.
Avatar billede jakoba Nybegynder
11. maj 2003 - 12:05 #8
Of så er der navnet 'date', det frarådes ligesom 'time'.
Du har virkelig været uheldig med navnene i den der tabel :-))
Avatar billede caturn Nybegynder
11. maj 2003 - 12:46 #9
Ja. Jeg må få ændret det. :-)
Avatar billede caturn Nybegynder
11. maj 2003 - 19:15 #10
Så virker det! JUHUU!

Post nogle svar og få point.
Avatar billede erikjacobsen Ekspert
11. maj 2003 - 21:06 #11
jeg frafalder
Avatar billede caturn Nybegynder
11. maj 2003 - 21:15 #12
Hvorfor dog det?
Det var dit script der virkede. Og jakoba's fejlfinding fjernede fejlbeskerne.
Avatar billede caturn Nybegynder
09. juni 2003 - 22:34 #13
Kom nu med nogle svar! Ikke så beskedne! :-)
Avatar billede caturn Nybegynder
27. juni 2003 - 20:32 #14
Læg nogle svar ellers lukker jeg.
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