nree Skrevet 9. oktober 2006 Del Skrevet 9. oktober 2006 (endret) Heisann Holder på med et brukerpanel bare for å utvide mine erfaringer og lurer derfor på en sak her.. Tabellstrukturen ser slik ut: id | fra | til | tid | dato | lest | melding | ip Jeg vil ha ut et tall, altså nye uleste meldinger. For å gjøre dette er "lest" feltet 1 når meldingen er lest og 0 når meldingen er ulest. I tillegg kan det kun telle meldinger som er til den brukeren som er innlogget altså $_SESSION['brukernavn'] .. Altså for å oppsumere litt, jeg skulle hatt et script som teller rader med lest="0" og til="$_SESSION['brukernavn']".. Jeg vil ha ut et tall som det som står under "Du er logget inn som: goggen90" her, altså f.eks (3) Noen som kan hjelpe? Endret 9. oktober 2006 av goggen90 Lenke til kommentar
Peter Skrevet 9. oktober 2006 Del Skrevet 9. oktober 2006 Hvor mye PHP eller SQL kan du egentlig? Spørsmålet ditt er et fullblods SQL-spørsmål med unntak av utskriften. SELECT COUNT(lest) as num_meldinger FROM Meldinger_tabell WHERE lest != 1 AND bruker_navn = $_SESSION['brukernavn'] Såh, les her http://dev.mysql.com/doc/refman/4.1/en/index.html Du burde undersøke litt på egenhånd først før du stiller spørsmål, dette er helt grunnleggende PHP og SQL, og burde ikke være vanskelig for en som har lest litt om hver av dem. Lenke til kommentar
nree Skrevet 9. oktober 2006 Forfatter Del Skrevet 9. oktober 2006 (endret) Hehe, man kan ikke lære alt? Hvordan bruker jeg denne sammen med PHP? Endret 9. oktober 2006 av goggen90 Lenke til kommentar
Kellendil Skrevet 9. oktober 2006 Del Skrevet 9. oktober 2006 Sjønner ikke problemstillingen? det er jo bare å kjøre den som hvilken som helst annen sql spørring? deretter er det jo bare å skrive ut resultatet. Lenke til kommentar
nree Skrevet 9. oktober 2006 Forfatter Del Skrevet 9. oktober 2006 Kellendil: akkuratt det jeg spørr om hvordan kodinga skal være.. Lenke til kommentar
Peter Skrevet 9. oktober 2006 Del Skrevet 9. oktober 2006 http://no2.php.net/mysql_connect http://no2.php.net/mysql_query http://no2.php.net/manual/en/function.mysql-fetch-array.php eller http://no2.php.net/manual/en/function.mysql-fetch-row.php eller http://no2.php.net/manual/en/function.mysql-fetch-assoc.php eller http://no2.php.net/manual/en/function.mysql-result.php Lenke til kommentar
nree Skrevet 10. oktober 2006 Forfatter Del Skrevet 10. oktober 2006 Nazgul: Problemet er ikke at jeg ikke vet hvordan jeg kobler til databasen og kan hente ut informasjon.. Jeg bruker mySQL sammen med PHP på hele hjemmesiden min.. Det som er problemet er hvordan jeg skal skrive ut SELECT COUNT(lest) as num_meldinger FROM Meldinger_tabell WHERE lest != 1 AND bruker_navn = $_SESSION['brukernavn'] $link = mysql_connect ($mysql_host, $mysql_user, $mysql_pass) or die ("ERROR!"); if (mysql_select_db ($mysql_db)) { mysql_query("SELECT COUNT(lest) as num_meldinger FROM Meldinger_tabell WHERE lest != 1 AND bruker_navn = $_SESSION['brukernavn']"); //hva skal jeg bruke nå? Å gi 6 linker til manualen gjør det ikke akkuratt lettere å forstå Lenke til kommentar
Ernie Skrevet 10. oktober 2006 Del Skrevet 10. oktober 2006 Kanskje det har noe med at du ikke lærer noe hvis du får servert hele koden? "Svaret" står i de linkene, du må bare skjønne hva det er snakk om og hva de gjør ... Lenke til kommentar
Peter Skrevet 10. oktober 2006 Del Skrevet 10. oktober 2006 Du har brukt mysql_connect riktig. I mysql_quqery tar du ikke vare på resultatet, og da er du allerede ute og kjøre. Lagre resultatet fra mysql_query og bruk det på en av de ovenfornevnte funksjonene (4 siste). Disse 4 funksjonene gjør stort sett samme greia, nemlig å returnere et resultat fra databasen, men det er forskjell på hvordan de gjør det. I starten kan mysql_fetch_array være enklest, men du burde ha kjennskap til de andre også. Jeg er ferdig med å servere ferdig kode på trivielle ting som står så godt forklart i manualen. Lenke til kommentar
nree Skrevet 10. oktober 2006 Forfatter Del Skrevet 10. oktober 2006 (endret) $resultat = mysql_query ("SELECT COUNT(lest) as num_meldinger FROM Meldinger_tabell WHERE lest != 1 AND bruker_navn = $_SESSION['brukernavn']"); while ($row = mysql_fetch_array($resultat)) { //hva skal jeg gjøre nå? Det er slik jeg bruker når jeg har hentet ut info til nå.. Da har jeg nå brukt f.eks $row['rad'] for å hente ut info fra raden "rad".. Men, da har jeg ikke brukt "as num_meldinger" vist du sjønner, og dermed vet jeg ikke hva jeg skal skrive nå, om jeg skal bruke $row['num_meldinger'] eller noe annet? Hadde vært mye bedre av med et fullverdig eksempel... Endret 10. oktober 2006 av goggen90 Lenke til kommentar
Peter Skrevet 10. oktober 2006 Del Skrevet 10. oktober 2006 Prøv. Ta f.eks. var_dump() på $row, så ser du fort hvilke assosiasjoner som finnes i arrayet. Dessuten returnerer den spørringen bare én rad, ettersom den summerer/teller. Lenke til kommentar
nree Skrevet 10. oktober 2006 Forfatter Del Skrevet 10. oktober 2006 (endret) Hmm <?php session_start(); include("db.php"); $link = mysql_connect ($mysql_host, $mysql_user, $mysql_pass) or die ("ERROR!"); if (mysql_select_db ($mysql_db)) { $mysql_tabell = "meldinger"; $brnavn = $_SESSION['brukernavn']; $resultat = mysql_query("SELECT COUNT(lest) as meldinger FROM $mysql_tabell WHERE lest ='0' AND til = $brukernavn"); $row = mysql_fetch_array($resultat); $meldinger = $row['meldinger']; echo("$meldinger"); } ?> Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in ... on line 14 Endret 10. oktober 2006 av goggen90 Lenke til kommentar
Martin A. Skrevet 10. oktober 2006 Del Skrevet 10. oktober 2006 $brnavn = $_SESSION['brukernavn']; $resultat = mysql_query("SELECT COUNT(lest) as meldinger FROM $mysql_tabell WHERE lest ='0' AND til = $brukernavn"); Ser du en feil her? $brnavn brukes ikke, men det gjør $brukernavn. Et array må vel uansett loopes gjennom selv om det bare skal returnere ett svar. Gjør det på samme måte du som alltid gjør når du skal printe noe fra en tabell. Lenke til kommentar
Ernie Skrevet 10. oktober 2006 Del Skrevet 10. oktober 2006 (endret) $brnavn = $_SESSION['brukernavn']; $resultat = mysql_query("SELECT COUNT(lest) as meldinger FROM $mysql_tabell WHERE lest ='0' AND til = $brukernavn"); Ser du en feil her? $brnavn brukes ikke, men det gjør $brukernavn. Et array må vel uansett loopes gjennom selv om det bare skal returnere ett svar. Gjør det på samme måte du som alltid gjør når du skal printe noe fra en tabell. 7041505[/snapback] Neidu, veit du at en spørring alltid vil returnerer en enkelt rad trenger du virkelig ikke noe mer enn litt if-setninger for å håndtere det hele. Jeg vil si det er intet mindre enn stygt å plassere noe slikt inni en loop. Endret 10. oktober 2006 av Ernie Lenke til kommentar
Peter Skrevet 10. oktober 2006 Del Skrevet 10. oktober 2006 Dersom du bare skal ha én verdi fra en array, hvorfor skal du egentlig loope? goggen: du tester ikke for false på resultatet før du bruker det i mysql_fetch_array, dette er vist i eksemplene på http://no.php.net/mysql_query. Ellers har du riktig, bortsett fra at du bruker feil variabel i spørringen (som Martin sier) Lenke til kommentar
nree Skrevet 10. oktober 2006 Forfatter Del Skrevet 10. oktober 2006 <?php session_start(); include("db.php"); $link = mysql_connect ($mysql_host, $mysql_user, $mysql_pass) or die ("ERROR!"); if (mysql_select_db ($mysql_db)) { $mysql_tabell = "meldinger"; $brnavn = $_SESSION['brukernavn']; $resultat = mysql_query("SELECT COUNT(lest) as meldinger FROM $mysql_tabell WHERE lest ='0' AND til = $brnavn"); if (!$resultat) { die('Feil spørring: ' . mysql_error()); } $row = mysql_fetch_array($resultat); $meldinger = $row['meldinger']; echo("$meldinger"); } ?> Feil spørring: 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 '' at line 1 Lenke til kommentar
Ernie Skrevet 10. oktober 2006 Del Skrevet 10. oktober 2006 Strenger må i SQL legges inn i en ' ' (ev. " " eller noe annet hvis db-en bruker det). Lenke til kommentar
Peter Skrevet 10. oktober 2006 Del Skrevet 10. oktober 2006 Strenger må i SQL legges inn i en ' ' (ev. " " eller noe annet hvis db-en bruker det). 7041762[/snapback] Bare presisere at tall _ikke_ trenger anførselstegn. (Du har gjort motsatt i koden din, goggen) Lenke til kommentar
nree Skrevet 10. oktober 2006 Forfatter Del Skrevet 10. oktober 2006 Okey Tusen hjertelig takk alle fire 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å