Query, bugged in lay?

Gestart doorMikeb21 reacties72 weergaven

22 berichten · pagina 1 van 2

Mikeb

Lid · Topicstarter

Berichten
6.356
Reputatie
0
Punten
0,00
Lid sinds
Laatst gezien
Hey allemaal,

Ik wil bij inbox tussen haakjes een cijfer zetten, zodat diegene weet of hij nog ongelezen berichten heeft.
ik heb dit, maar dat werkt niet. is er nog een andere manier?;

Quote:
$leden_query2 = mysql_query("SELECT * FROM users WHERE user=".$_SESSION[user]."");
$leden_gegevens2 = mysql_fetch_assoc($leden_query2);
$dbres = mysql_query("SELECT * FROM `[berichten]` WHERE `read`=0 AND `to`={$leden_gegevens2[user]}");
$berichtenn = mysql_num_rows($dbres);
if($berichtenn > 0){
$berichten = "".$berichtenn."";
}else{
$berichten = $berichtenn;
}
?>

Beloning: 0.1
0
Berichten
35.796
Reputatie
1
Punten
0,00
Lid sinds
Laatst gezien
Als je wat duidelijker programmeert dan werkt dat een stuk lekkerder:
[COLOR= #0000BB]<?php
$dbres[/COLOR] [COLOR= #007700]=[/COLOR] [URL="http://www.php.net/mysql_query"]mysql_query[/URL][COLOR= #007700]([/COLOR][COLOR= #DD0000]"SELECT 1 FROM [berichten] WHERE read = 0 AND to = "[/COLOR][COLOR= #007700].[/COLOR][COLOR= #0000BB]$_SESSION[/COLOR][COLOR= #007700][[/COLOR][COLOR= #DD0000]user[/COLOR][COLOR= #007700]]);[/COLOR]
[COLOR= #0000BB]$aantal[/COLOR] [COLOR= #007700]=[/COLOR] [URL="http://www.php.net/mysql_num_rows"]mysql_num_rows[/URL][COLOR= #007700]([/COLOR][COLOR= #0000BB]$dbres[/COLOR][COLOR= #007700]);[/COLOR]

[URL="http://www.php.net/if"]if[/URL][COLOR= #007700]([/COLOR][COLOR= #0000BB]$aantal[/COLOR] [COLOR= #007700]>[/COLOR] [COLOR= #0000BB]0[/COLOR][COLOR= #007700])
{[/COLOR]

    [COLOR= #0000BB]$berichten[/COLOR] [COLOR= #007700]=[/COLOR] [COLOR= #DD0000]<b>[/COLOR][COLOR= #007700].[/COLOR][COLOR= #0000BB]$aantal[/COLOR][COLOR= #007700].[/COLOR][COLOR= #DD0000]</b>[/COLOR][COLOR= #007700];

}[/COLOR]
[URL="http://www.php.net/else"]else[/URL]
[COLOR= #007700]{[/COLOR]

    [COLOR= #0000BB]$berichten[/COLOR] [COLOR= #007700]=[/COLOR] [COLOR= #0000BB]$aantal[/COLOR][COLOR= #007700];

}[/COLOR]
?>


Maar wat werkt er niet dan?
0
Mikeb

Lid · Topicstarter

Berichten
6.356
Reputatie
0
Punten
0,00
Lid sinds
Laatst gezien
Warning: mysql_num_rows(): supplied argument is not a valid MySQL result resource in /home/********/domains/trizzy.nl/public_html/layout.php on line 169

dat is het hem.

Hij pakt de mysql num rows niet.

Achter de inbox;

()
0
Berichten
35.796
Reputatie
1
Punten
0,00
Lid sinds
Laatst gezien
En als je
mysql_query("SELECT 1 FROM [berichten] WHERE read = 0 AND to = ".$_SESSION[user]);


vervangt door
mysql_query("SELECT 1 FROM [berichten] WHERE read = 0 AND to = ".$_SESSION[user]) or die(mysql_error());


?
0
Mikeb

Lid · Topicstarter

Berichten
6.356
Reputatie
0
Punten
0,00
Lid sinds
Laatst gezien
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 [berichten] WHERE read = 0 AND to = at line 1

[COLOR= #0000BB]<?php
$dbres[/COLOR] [COLOR= #007700]=[/COLOR] [URL="http://www.php.net/mysql_query"]mysql_query[/URL][COLOR= #007700]([/COLOR][COLOR= #DD0000]"SELECT 1 FROM [berichten] WHERE read = 0 AND to = "[/COLOR][COLOR= #007700].[/COLOR][COLOR= #0000BB]$_SESSION[/COLOR][COLOR= #007700][[/COLOR][COLOR= #DD0000]user[/COLOR][COLOR= #007700]])[/COLOR] or [URL="http://www.php.net/die"]die[/URL][COLOR= #007700]([/COLOR][URL="http://www.php.net/mysql_error"]mysql_error[/URL][COLOR= #007700]());[/COLOR]
[COLOR= #0000BB]$aantal[/COLOR] [COLOR= #007700]=[/COLOR] [URL="http://www.php.net/mysql_num_rows"]mysql_num_rows[/URL][COLOR= #007700]([/COLOR][COLOR= #0000BB]$dbres[/COLOR][COLOR= #007700]);[/COLOR]

[URL="http://www.php.net/if"]if[/URL][COLOR= #007700]([/COLOR][COLOR= #0000BB]$aantal[/COLOR] [COLOR= #007700]>[/COLOR] [COLOR= #0000BB]0[/COLOR][COLOR= #007700])
{[/COLOR]

    [COLOR= #0000BB]$berichten[/COLOR] [COLOR= #007700]=[/COLOR] [COLOR= #DD0000]<b>[/COLOR][COLOR= #007700].[/COLOR][COLOR= #0000BB]$aantal[/COLOR][COLOR= #007700].[/COLOR][COLOR= #DD0000]</b>[/COLOR][COLOR= #007700];

}[/COLOR]
[URL="http://www.php.net/else"]else[/URL]
[COLOR= #007700]{[/COLOR]

    [COLOR= #0000BB]$berichten[/COLOR] [COLOR= #007700]=[/COLOR] [COLOR= #0000BB]$aantal[/COLOR][COLOR= #007700];

}[/COLOR]
?>


(<?=$berichten;?>)


Waar staat eigenlijk die 1 voor in die query?xD
0
Berichten
35.796
Reputatie
1
Punten
0,00
Lid sinds
Laatst gezien
Vervang
[berichten]
dan even door
`[berichten]`

Waarom heb je niet gewoon berichten maar heb je er [berichten] van gemaakt dan? emo
Die 1 staat gewoon voor 1. emo Als je SELECT * doet dan haalt hij alle informatie op, maar dat heb je helemaal niet nodig. Je wil alleen weten hoeveel pms er zijn, dus of je nou alle informatie of allemaal enen krijgt, dat maakt je niks uit, als je maar weet hoeveel het er zijn. yummie
0
Mikeb

Lid · Topicstarter

Berichten
6.356
Reputatie
0
Punten
0,00
Lid sinds
Laatst gezien
oow oke. Ik ga ff vervangen smile maar er is nog een fout met die mysql num rows.

EDIT:

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 AND to = at line 1
0
Berichten
35.796
Reputatie
1
Punten
0,00
Lid sinds
Laatst gezien
Ja, die fout bij num rows komt door je query.

Maar wtf je hebt allemaal rare tabel- en kolomnamen die standaard door mysql gebruikt worden, dat moet je echt afleren want dat scheelt je heel wat gedoe dan. emo
Nog een poging.
$dbres = mysql_query("SELECT 1 FROM `[berichten]` WHERE read = 0 AND to = ".$_SESSION[user]) or die(mysql_error());
vervangen door
$dbres = mysql_query("SELECT 1 FROM `[berichten]` WHERE `read` = 0 AND `to` = ".$_SESSION[user]) or die(mysql_error());

Als je fatsoenlijke tabelnamen neemt dan heb je al die backticks niet nodig.
Gewoon berichten, gelezen en naar.
SELECT 1 FROM berichten WHERE gelezen = 0 AND naar = ".$_SESSION[user]
das toch veel handiger dan al die `````````` er tussendoor. biggrin
0
Mikeb

Lid · Topicstarter

Berichten
6.356
Reputatie
0
Punten
0,00
Lid sinds
Laatst gezien
Werkt ook niet xD

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
0
Berichten
35.796
Reputatie
1
Punten
0,00
Lid sinds
Laatst gezien
Ja ik weet dat het niet werkt want het is nog steeds dezelfde query, maar zonder foutmelding weet ik ook niet wat er fout zit he. emo
Verander hem eens door dit:
$dbres = mysql_query(($sql = "SELECT 1 FROM `[berichten]` WHERE `read` = 0 AND `to` = ".$_SESSION[user])) or die(mysql_error()."
".$sql);

Je krijgt dan ook de query erbij, plaats die eens hier.

edit:
ik vermoed zo dat $_SESSION[user] niet bestaat
0
Mikeb

Lid · Topicstarter

Berichten
6.356
Reputatie
0
Punten
0,00
Lid sinds
Laatst gezien
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
SELECT 1 FROM `[berichten]` WHERE `read` = 0 AND `to` =

Moet ik hem anders ff naar je mail sturen? de hele pagina?

Een query uit een andere pagina:

mysql_query("UPDATE `users` SET kliks=kliks+15 WHERE `user` = ".$_SESSION[user]."");
0
Berichten
35.796
Reputatie
1
Punten
0,00
Lid sinds
Laatst gezien
Maar $_SESSION[user] bestaat gewoon niet op die pagina.
Heb je wel session_start() bovenaan staan?
0
Berichten
1.314
Reputatie
0
Punten
0,00
Lid sinds
Laatst gezien
$dbres =
mysql_query("
SELECT
1
FROM `[berichten]`
WHERE
read = 0
AND
to = ".$_SESSION[user].") or die(mysql_error());

Volgens mij was je bij de eerste ) dit teken: " vergeten was
0
Mikeb

Lid · Topicstarter

Berichten
6.356
Reputatie
0
Punten
0,00
Lid sinds
Laatst gezien
session user bestaat wel, want het staat ook eerder en dat doet het wel.

@Kenzo,

dat werkt helemaal niet.

Zou het helpen als ik dit doe;

$user= ".$_SESSION[user]."

?
0
Berichten
35.796
Reputatie
1
Punten
0,00
Lid sinds
Laatst gezien
Hij bestaat gewoon niet op het moment dat je die query uitvoert, dus dat moet je fixen.
0

Jouw reactie

Deel je idee, stel een vraag of help een ander verder.

Editor laden…

Praat mee met de One2xs-community.

Inloggen om te reageren