In een waas...!
En ik kom er totaal niet meer uit :p
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
2
3
4
5
6
7
8
9
10
11
12
13
<?
$msg_check = mysql_query("SELECT * FROM pm WHERE to_user = '".$_SESSION['user']."',read=0");
$count = mysql_num_rows($msg_check);
if($count > 1) {
$string = "Je hebt ".$count." nieuwe berichten ";
}elseif($count == 1){
$string = "Je hebt één nieuw bericht.";
}else{
$string = "Je hebt geen nieuwe berichten";
}
echo $string;
?>
$msg_check = mysql_query("SELECT * FROM pm WHERE to_user = '".$_SESSION['user']."',read=0");
$count = mysql_num_rows($msg_check);
if($count > 1) {
$string = "Je hebt ".$count." nieuwe berichten ";
}elseif($count == 1){
$string = "Je hebt één nieuw bericht.";
}else{
$string = "Je hebt geen nieuwe berichten";
}
echo $string;
?>
In mijn waas ben ik kwijt hoe die selectie ook al weer werk :s...
Dus hoe je iets selecteerd op 2 kenmerken: Where a = '1', b = '2' of Where a = '1' AND b = '2' of Where a = '1' && b = '2'
...
Gewijzigd op 14/10/2005 18:48:00 door Pieter van Linschoten
AND ?
het werkt niet met "AND", het werkt niet met "," en het werkt niet met && :(
Code (php)
1
2
3
2
3
<?php
$msg_check = mysql_query("SELECT * FROM pm WHERE to_user = '".$_SESSION['user']."' AND read=0");
?>
$msg_check = mysql_query("SELECT * FROM pm WHERE to_user = '".$_SESSION['user']."' AND read=0");
?>
Probeer eens
Code (php)
1
2
3
2
3
<?php
$msg_check = mysql_query("SELECT * FROM pm WHERE to_user = '".$_SESSION['user']."' AND read=0") or die(mysql_error());
?>
$msg_check = mysql_query("SELECT * FROM pm WHERE to_user = '".$_SESSION['user']."' AND read=0") or die(mysql_error());
?>
Gewijzigd op 14/10/2005 18:56:00 door Barman V
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 'read=0' at line 1
$msg_check = mysql_query("SELECT * FROM pm WHERE to_user = '".$_SESSION['user']."' AND read='0'") or die(mysql_error());
Heb je de kolom read als (var)char ipv tinyint?
query is syntax gezien correct. 't zal dan wel ergens aan je DB liggen die er iets anders uit ziet :) .
echo $_SESSION['user'] eens. Volgens mij is ie leeg. Staat er wel session_start() bovenin het script.
id date read from_user to_user title message
$_SESSION['user'] kan niet leeg zijn :p
...
Moet ik die veranderen naar een char om te selecteren?
Gewijzigd op 14/10/2005 21:01:00 door Pieter van Linschoten
Lapidi:
$_SESSION['user'] kan niet leeg zijn :p
Heb je dat gechecked? Alles is mogelijk.
En dat heeft toch niets met een Syntax error te maken?
Dit is het was het begin:
Code (php)
1
2
3
2
3
<?php
$msg_check = mysql_query("SELECT * FROM pm WHERE to_user = '".$_SESSION['user']."' AND read = '0'");
?>
$msg_check = mysql_query("SELECT * FROM pm WHERE to_user = '".$_SESSION['user']."' AND read = '0'");
?>
En dit is dus goed:
Code (php)
1
2
3
2
3
<?
$msg_check = mysql_query("SELECT * FROM pm WHERE `to_user` = '".$_SESSION['user']."' AND `read` = '0'");
?>
$msg_check = mysql_query("SELECT * FROM pm WHERE `to_user` = '".$_SESSION['user']."' AND `read` = '0'");
?>
Zoek de verschillen :|
best wel wazig ja als je de weg in je eigen script kwijt bent ( niet zo gek eigelijk in super grote scrippies)
zover ik weet maakt het helemaal niks uit of je nou `to_user` of to_user doet ?
Ik dacht ook da et niks uitmaakte..
Wanneer je helemaal in een script zit dan voila je hebt het maar wil je na verloop van tijd wat wijzigen of ....
Dan phewwwwww is het zoeken hoor zonder // comments ;-)
Suc6!!
Groet, lissy
deze link.
Zo slecht als MySQL nou eenmaal is, kun je dit OMZEILEN door backticks eromheen te zetten....slim hoor, ik stel voor dat je je kolom gewoon renamed naar "gelezen" o.i.d.
Verder is het trouwens nogal erg FOUT om een SELECT * te doen als je alleen maar rijen gaat tellen, al je records staan namelijk al wel in het geheugen!!!
Je kunt dit aanzienlijk versnellen door gewoon gebruik te maken van de SQL-functie COUNT:
'read' is een gereserveerd woord in MySQL, zie ook Zo slecht als MySQL nou eenmaal is, kun je dit OMZEILEN door backticks eromheen te zetten....slim hoor, ik stel voor dat je je kolom gewoon renamed naar "gelezen" o.i.d.
Verder is het trouwens nogal erg FOUT om een SELECT * te doen als je alleen maar rijen gaat tellen, al je records staan namelijk al wel in het geheugen!!!
Je kunt dit aanzienlijk versnellen door gewoon gebruik te maken van de SQL-functie COUNT:
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
2
3
4
5
6
7
8
9
10
11
12
13
14
<?php
$qryCount = "SELECT COUNT(1) AS aantal WHERE to_user='".$_SESSION['user']."' AND gelezen=0";
if(!$resCount = mysql_query($qryCount) )
{
echo 'Query mislukte '.mysql_error();
}
else
{
// Haal record op
$rs = mysql_fetch_assoc($resCount);
echo $rs['aantal'];
}
?>
$qryCount = "SELECT COUNT(1) AS aantal WHERE to_user='".$_SESSION['user']."' AND gelezen=0";
if(!$resCount = mysql_query($qryCount) )
{
echo 'Query mislukte '.mysql_error();
}
else
{
// Haal record op
$rs = mysql_fetch_assoc($resCount);
echo $rs['aantal'];
}
?>