Gå til innhold

Telle rader for uleste meldinger til egen konto?


Anbefalte innlegg

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 av goggen90
Lenke til kommentar
Videoannonse
Annonse

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

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

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

$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... :yes:

Endret av goggen90
Lenke til kommentar

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 av goggen90
Lenke til kommentar

$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
$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 av Ernie
Lenke til kommentar

<?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

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 konto

Logg inn

Har du allerede en konto? Logg inn her.

Logg inn nå
×
×
  • Opprett ny...