erlingwe Skrevet 4. november 2005 Del Skrevet 4. november 2005 (endret) Hei, prøver å kjøre følgende spørring... $squery = mysql_query("SELECT n, m FROM test AS (SELECT navn AS n, mail AS m FROM p WHERE fid='$id' ORDER BY id LIMIT '$var') ORDER BY n") Skjønner ikke hvorfor det ikke fungerer.. men er ganske trøtt nå, noen som kan hjelpe? Endret 4. november 2005 av erlingwe Lenke til kommentar
missiongul Skrevet 4. november 2005 Del Skrevet 4. november 2005 (endret) Vel, jeg pleier å gjøre slik: $squery = mysql_query("SELECT navn AS n, mail AS m FROM p WHERE fid='$id' ORDER BY id LIMIT '$var'") $resultat = mysql_fetch_array($squery); $squery = mysql_query("SELECT n, m FROM test AS ($resultat[0]) ORDER BY n") (tror det var noe lignende det) Endret 4. november 2005 av missiongul Lenke til kommentar
erlingwe Skrevet 4. november 2005 Forfatter Del Skrevet 4. november 2005 (endret) Vel, jeg pleier å gjøre slik:$squery = mysql_query("SELECT navn AS n, mail AS m FROM p WHERE fid='$id' ORDER BY id LIMIT '$var'") $resultat = mysql_fetch_array($squery); $squery = mysql_query("SELECT n, m FROM test AS ($resultat[0]) ORDER BY n") (tror det var noe lignende det) 5103452[/snapback] Hei, takk for tipset, men det fungerer fortsatt ikke.. ($resultat[0]) vil vel bare gi det første elementet i arrayen?? Dette er den fullstendige koden: $squery = mysql_query("SELECT navn AS n, mail AS m FROM paameldt WHERE f_id='$id' ORDER BY id LIMIT $bespisnings"); $rss = mysql_fetch_array($squery); $ssquery = mysql_query("SELECT n, m FROM test AS ($rss) ORDER BY n"); while($rs = mysql_fetch_array($ssquery)) { $navn = $rs["n"]; $mail = $rs["m"]; echo"$navn - $mail"?><br> <? } Men får altså feilmelding.. Endret 4. november 2005 av erlingwe Lenke til kommentar
kakkle Skrevet 4. november 2005 Del Skrevet 4. november 2005 Hvilken feilmelding får du ? Sleng på en or die(mysql_error()) etter mysql_query, så ser du det nok... Husk at $rss er et array. Hvorfor skal du i det hele tatt ha et alias på tabellen test ? Går vel ikke an med et array som alias. Lenke til kommentar
erlingwe Skrevet 4. november 2005 Forfatter Del Skrevet 4. november 2005 Hvilken feilmelding får du ? Sleng på en or die(mysql_error()) etter mysql_query, så ser du det nok...Husk at $rss er et array. Hvorfor skal du i det hele tatt ha et alias på tabellen test ? Går vel ikke an med et array som alias. 5103592[/snapback] Trenger sikkert ikke bruke alias nei, Feilmelding: You have an error in your SQL syntax. Check the manual that corresponds to your MySQL server version for the right syntax to use near 'ORDER BY n' at line 1 dvs denne setningen: SELECT n, m FROM $rss[0] ORDER BY n Lenke til kommentar
kakkle Skrevet 4. november 2005 Del Skrevet 4. november 2005 Kan jeg få spørre om hva det egentlig er du skal oppnå ? Du henter altså navn og mail fra tabellen paameldt. Skal du bruke det du henter derfra i den neste spørringen ? Isåfall i hvilken sammen heng ? Har du felt som heter n og m i tabellen test ? Skriv ut spørringen når den feiler, så ser du hvordan den blir, og hvorfor den feiler... Lenke til kommentar
erlingwe Skrevet 4. november 2005 Forfatter Del Skrevet 4. november 2005 Kan jeg få spørre om hva det egentlig er du skal oppnå ?Du henter altså navn og mail fra tabellen paameldt. Skal du bruke det du henter derfra i den neste spørringen ? Isåfall i hvilken sammen heng ? Har du felt som heter n og m i tabellen test ? Skriv ut spørringen når den feiler, så ser du hvordan den blir, og hvorfor den feiler... 5103629[/snapback] Hei, Det jeg skal: 1. Har x antall påmeldte til et foredrag med f_id='$id' 2. Skal hente ut de y første 3. Deretter sortere dem alfabetisk... Har ingen tabell som heter test.. Derimot tabellen paameldt med feltene: navn, mail, id, f_id etc.. Lenke til kommentar
kakkle Skrevet 4. november 2005 Del Skrevet 4. november 2005 (endret) Burde ikke denne gjøre jobben, da: $sql = "SELECT navn AS n, mail AS m FROM paameldte WHERE f_id=$id ORDER BY n LIMIT y"; $res = mysql_query($sql) or die("Feil i spørring: $sql<br>".mysql_error()); while ($row = mysql_fetch_array($res)) { echo "Navn: ".$row['n']."<br> Mail: ".$row['m']."<br>"; } Med forbehold om små "tullefeil" EDIT: Regner da med at du får $id fra url eller en form. Hentes vha $id = $_REQUEST['id'] (Bør byttes til $_GET eller $_POST, alt etter om det er fra GET (f.eks. fra url) eller post (Fra form) EDIT2: Og y skal da byttes med hvor mange av de første postene du vil vise. Endret 4. november 2005 av kakkle Lenke til kommentar
erlingwe Skrevet 4. november 2005 Forfatter Del Skrevet 4. november 2005 (endret) Burde ikke denne gjøre jobben, da: $sql = "SELECT navn AS n, mail AS m FROM paameldte WHERE f_id=$id ORDER BY n LIMIT y"; $res = mysql_query($sql) or die("Feil i spørring: $sql<br>".mysql_error()); while ($row = mysql_fetch_array($res)) { echo "Navn: ".$row['n']."<br> Mail: ".$row['m']."<br>"; } Med forbehold om små "tullefeil" EDIT: Regner da med at du får $id fra url eller en form. Hentes vha $id = $_REQUEST['id'] (Bør byttes til $_GET eller $_POST, alt etter om det er fra GET (f.eks. fra url) eller post (Fra form) 5103675[/snapback] Beklager.. Det er jo det som er hele poenget: Hvis jeg bruker den koden din vil den kun printe ut de y første sortert alfabetisk.. I praksis alle med navn på A, dvs aasen, andersen, osv.. Men jeg vil den skal hente ut de som registrerte seg først (har lavest id) - og deretter sortere dem alfabetisk! Alstå gitt tabellen: 1. olsen 2. andersen 3. aasen 4. hansen Med y = 2 skal den da skrive ut : andersen, olsen... skjønner? Derfor jeg trenger en spørring i en spørring.. evt. sortere arrayen på en annen måte.. Endret 4. november 2005 av erlingwe Lenke til kommentar
Peter Skrevet 4. november 2005 Del Skrevet 4. november 2005 (endret) uten at jeg har gjort dette på veldig lenge, men kan du ikke bruke $sql = "SELECT navn AS n, mail AS m FROM paameldte WHERE f_id=$id ORDER BY <IDFELT_I_PAAMELDTE> LIMIT y"; $res = mysql_query($sql) or die("Feil i spørring: $sql<br>".mysql_error()); while ($row = mysql_fetch_array($res)) { echo "Navn: ".$row['n']."<br> Mail: ".$row['m']."<br>"; } Altså bytt ut <IDFELT_I_PAAMELDTE> med det som er id feltet i paameldtetabellen? Endret 4. november 2005 av Nazgul Lenke til kommentar
erlingwe Skrevet 4. november 2005 Forfatter Del Skrevet 4. november 2005 uten at jeg har gjort dette på veldig lenge, men kan du ikke bruke $sql = "SELECT id AS i, navn AS n, mail AS m FROM paameldte WHERE f_id=$id ORDER BY i LIMIT y"; $res = mysql_query($sql) or die("Feil i spørring: $sql<br>".mysql_error()); while ($row = mysql_fetch_array($res)) { echo "Navn: ".$row['n']."<br> Mail: ".$row['m']."<br>"; } Altså legge inn id AS i og ORDER BY i ? 5103707[/snapback] neineinei... Det er jo ikke noe stress å sortere på id, det som er stress er å sortere alfabetisk etterpå! Lenke til kommentar
Peter Skrevet 4. november 2005 Del Skrevet 4. november 2005 (endret) Dytt alle verdiene inn i en array davel og bruk sort() eller array_multisort() ? Endret 4. november 2005 av Nazgul Lenke til kommentar
erlingwe Skrevet 4. november 2005 Forfatter Del Skrevet 4. november 2005 Dytt alle verdiene inn i en array davel og bruk sort() eller array_multisort() ? 5103716[/snapback] Det er nok en lur løsning. Noen som kan hjelpe meg litt på vei? Lenke til kommentar
kakkle Skrevet 4. november 2005 Del Skrevet 4. november 2005 (endret) http://no2.php.net/array-multisort og http://www.php.net/sort gir deg mye hjelp. Det skal vel holde å bruke sort, kanskje... Prøv deg på litt kode, og spør dersom du henger fast... Endret 4. november 2005 av kakkle Lenke til kommentar
Ernie Skrevet 4. november 2005 Del Skrevet 4. november 2005 (endret) At man må trå til med sortering i PHP i det tilfellet er overhode ikke bra siden det er betydelig raskere å gjøre det i databasen. Følgende spørring bør fungere om jeg ikke har bommet grovt: SELECT * FROM paameldte WHERE (SELECT navn AS n, mail AS m FROM paameldte WHERE fid='$id' ORDER BY id LIMIT '$var') ORDER BY navn Endret 4. november 2005 av Ernie Lenke til kommentar
Anbefalte innlegg
Opprett en konto eller logg inn for å kommentere
Du må være et medlem for å kunne skrive en kommentar
Opprett konto
Det er enkelt å melde seg inn for å starte en ny konto!
Start en kontoLogg inn
Har du allerede en konto? Logg inn her.
Logg inn nå