Kirjautuminen

Haku

Tehtävät

Keskustelu: Nettisivujen teko: MySQL-kyselyongelmia

Vasta_alkaja [26.06.2008 22:31:17]

#

function SiirtymaOptionit()
{

	global $henkilo_id;

	$q ="SELECT id, CONCAT(snimi, ' ' ,nimi) as nimi,
        COUNT(t.johtaja) tiedote
        FROM asiakkaat as a
        LEFT JOIN tiedote as t
        ON t.johtaja = a.id
        WHERE hetu !=''
        AND tyyppi = 1
        AND luettu = 0
        AND poistettu IS NULL
        GROUP BY t.johtaja";

    $r = mysql_query($q);
	if(!$r) die(mysql_error());

	if(!mysql_num_rows($r)) return;

	$laskuri = 1;

    echo '<select onchange="window.location.href=this.options[this.selectedIndex].value" name="arvo">';

	echo '<option> Henkilökohtaiset viestit</option>';

    while($row = mysql_fetch_row($r))
	{
	    $sel = $row[0] == $henkilo_id ? 'selected="selected"' : '';
	    printf('<option %s value="./ilmoitustaulu.phtml?arvo=%d&nimi='.$row[1].'">%s ( %d )</option>', $sel, $row[0],
            mysql_real_escape_string($row[1]),
            mysql_real_escape_string($row[2]));
	}
    echo '</select>';
}

Elikkä ongelmanani olisi siis se, että yritän laskea montako viestiä haluttu käyttäjä on lukenut. Tilanteessa, jossa käyttäjä on lukenut kaikki viestinsä, ei käyttäjää tudosteta ollenkaan pudotusvalikkoon. Vaikka haluaisin, että käyttäjä siihen tulostetaan, koska käyttäjä voi merkitä viestin luetuksi, eikä sitä enää tulisi mihinkään merkata, mutta hän ei kuitenkaan poista viestiä.

Ongelmani tiedän oleman tässä kohtaan.

AND luettu = 0
AND poistettu IS NULL

Jos viestiä on luettu tai se poistettu, niin hakuehto ei löydä mitään. Miten siis tämä olisi järkevin ratkaista.

LaNu [26.06.2008 22:33:27]

#

Mikä se ongelma on?

Vasta_alkaja [26.06.2008 22:35:06]

#

LaNu kirjoitti:

Mikä se ongelma on?

Nyt on ongelmakin.

Vasta_alkaja [27.06.2008 14:11:25]

#

saako tuosta minun selityksestä mitään selvää.

Eli ongelmani on se, että lähetän käyttäjälle vaikka 3 viestiä.
Hän lukee niistä 2 joten jäljelle jää yksi.
Tässä tilanteessa pudotusvalikossa pitäisi lukea matti mainio (1), eli matilla on yksi lukematon viesti.
Jos Matti lukee tämänkin viestin on hänellä kolme viestiä, jotka on luettu.
Eli tulos on ei mitään. Mattia ei enää tulosteta pudotusvalikkoon vaikka hänellä on jäljellä nämä kaikki viestit, koska hän ei niitä poistanut.

Vastaus

Aihe on jo aika vanha, joten et voi enää vastata siihen.

Tietoa sivustosta