Gewoon door gaan met uit lezen
als g.atventaarid 0 is dus niet beschikbaar is tog gewoon door gaat met uit lezen ?
$sql = "SELECT b.van, b.bid, b.onderwerp, b.bericht,
DATE_FORMAT(b.datum, '%Y-%m-%d on %H:%i:%s') AS date_formatted,
a.atventaar, a.id, s.sigmature, s.id, g.naam, g.sigmatureid,
g.atventaarid ,
DATE_SUB(NOW(),INTERVAL 5 MINUTE) <= g.lastactive AS online
FROM berichten AS b, atventaar AS a, sigmature AS s,
gebruikers AS g WHERE b.van = g.id AND b.van = g.id AND a.id =
g.atventaarid AND s.id = g.sigmatureid AND b.naar = ".$_SESSION
['user_id']." ORDER BY b.datum
DESC LIMIT ".$begin.", ".$eind."";
Bedoel je 0 of NULL? Als je met een LEFT JOIN werkt en je zet g.atventaarid aan de rechterkant in de JOIN, zal hij hem evengoed uitlezen.
hier eens En dan bij de left Join, ik denk dat je daar wel wat verder mee komt.
kijk Edit:
Net iets later dan Jan
Net iets later dan Jan
Gewijzigd op 01/01/1970 01:00:00 door Citroen Anoniem Graag
Ik heb nu iets als dit maar hij doet nu niets meer sorry zou wel weer iets over het hooft zien.
Code (php)
1
2
3
4
5
6
7
8
9
2
3
4
5
6
7
8
9
<?php
$sql= " ....
FROM berichten AS b, atventaar AS a, sigmature AS
s, gebruikers AS g
WHERE b.van = g.id AND
b.van = g.id AND LEFT JOIN g.atventaarid ON (a.id = g.atventaarid);
AND s.id = g.sigmatureid AND b.naar = ".$_SESSION['user_id']." ORDER
BY b.datum DESC LIMIT ".$begin.", ".$eind."";
?>
$sql= " ....
FROM berichten AS b, atventaar AS a, sigmature AS
s, gebruikers AS g
WHERE b.van = g.id AND
b.van = g.id AND LEFT JOIN g.atventaarid ON (a.id = g.atventaarid);
AND s.id = g.sigmatureid AND b.naar = ".$_SESSION['user_id']." ORDER
BY b.datum DESC LIMIT ".$begin.", ".$eind."";
?>
Gewijzigd op 01/01/1970 01:00:00 door Derk Janssen
Code (php)
1
2
3
4
5
6
7
8
9
10
11
2
3
4
5
6
7
8
9
10
11
<?php
$sql= "
...
WHERE b.van = g.id AND b.van = g.id
AND
LEFT JOIN g.atventaarid ON a.id = g.atventaarid
AND s.id = g.sigmatureid
AND b.naar = " . $_SESSION['user_id']."
ORDER BY b.datum DESC
LIMIT ".$begin.", ".$eind;
?>
$sql= "
...
WHERE b.van = g.id AND b.van = g.id
AND
LEFT JOIN g.atventaarid ON a.id = g.atventaarid
AND s.id = g.sigmatureid
AND b.naar = " . $_SESSION['user_id']."
ORDER BY b.datum DESC
LIMIT ".$begin.", ".$eind;
?>
Tip: schrijf je query's netjes uit!
bump
tutut ramon, 24uur and you know it
bump
tutut ramon, 24uur and you know it
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
<?php
"FROM
berichten ber,
atventaar avt,
sigmature sig,
gebruikers gebr
LEFT JOIN
gebr.atventaarid ON (avt.id = gebr.atventaarid);
WHERE
ber.van = gebr.id
AND
ber.van = gebr.id
AND
sig.id = gebr.sigmatureid
AND
ber.naar = ".$_SESSION['user_id']."
ORDER BY
ber.datum DESC LIMIT ".$begin.", ".$eind."";
?>
"FROM
berichten ber,
atventaar avt,
sigmature sig,
gebruikers gebr
LEFT JOIN
gebr.atventaarid ON (avt.id = gebr.atventaarid);
WHERE
ber.van = gebr.id
AND
ber.van = gebr.id
AND
sig.id = gebr.sigmatureid
AND
ber.naar = ".$_SESSION['user_id']."
ORDER BY
ber.datum DESC LIMIT ".$begin.", ".$eind."";
?>
Ik snap niet waarom je
WHERE
ber.van = gebr.id
AND
ber.van = gebr.id
doet
Tip geef je alliassen een handige naam ipv a,b,c
Voor de rest zieik zo geen problemen in je sql.
Heb je hem al eens geechoed?
Gewijzigd op 01/01/1970 01:00:00 door Klaasjan Boven
De bedoeling is dat hij gewoon uit blijft lezen als gebr.atventaarid 0 is of null is
Gewijzigd op 01/01/1970 01:00:00 door Klaasjan Boven
Mischien is het makelijker als ik alles even post.
Dit is een scriptje voor het uitlezen van bericten.
Op dit moment kunnen ze alleen wat posten als ze een atventaar en een sigmature hebben, dat is natuurlijk niet pertig en dat zou ik graag anders willen maar weet niet hoe.
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
<?php
$sql = "SELECT
b.van, b.bid,
b.onderwerp,
b.bericht,
DATE_FORMAT(b.datum, '%Y-%m-%d on %H:%i:%s') AS date_formatted,
a.atventaar,
a.id,
s.sigmature,
s.id,
g.naam,
g.sigmatureid,
g.atventaarid ,
DATE_SUB(NOW(),INTERVAL 5 MINUTE) <= g.lastactive AS online FROM
berichten AS b,
atventaar AS a,
sigmature AS s,
gebruikers AS g
LEFT JOIN g.atventaarid ON (a.id = g.atventaarid); WHERE
b.van = g.id AND
s.id = g.sigmatureid AND
b.naar = ".$_SESSION['user_id']." ORDER BY
b.datum DESC LIMIT ".$begin.", ".$eind."";
if(!$res = mysql_query($sql))
{
trigger_error(mysql_errno().': '.mysql_error().'. In de query: '.$sql);
}
while ($row = mysql_fetch_array($res)) {
$row['bericht'] = wordwrap($row['bericht'], 85, '<br>');
$row['bericht'] = smiley($row['bericht']);
echo '<table class="bericht" align="center" cellspacing="0" cellpadding="0">';
echo '<td background="../../image/balk.gif" height="26" colspan="2">From: <a href="../../profiel.php?mid='.$row['naam'] . '">'.$row['naam'] . '</a> Subject: '.$row['onderwerp'] .' Date: '.$row['date_formatted'] .'</td>';
echo '</tr>';
echo '<tr>';
echo '<td width="100" height="100" rowspan="2" valign="top">';
if($row['atventaarid'] == 0){
echo 'bump<br><center>';
}else{
echo '<img src="../atventaar/'.$row['atventaar'] .'" width="100" height="100"/><br><center>';
}
if($row['online'] == 1){
echo '<a class="online">Online';
}else{
echo '<a class="offline">Offline';
}
echo '</center></td><td class="bericht1" width="800" valign="top">'.$row['bericht'].'</td>';
echo '</tr>';
echo '<tr>';
echo '<td width="500" height="85"><img src="../sigmature/'.$row['sigmature'].'"/></td>';
echo '</tr>';
echo '<tr>';
echo '<td class="bericht2" colspan="2"><a href="re.php?re='.$row['bid'].'"><img border=0 src="../../image/replay.gif" width="61" height="15"></a> <a href="?delete='.$row['bid'] . '"><img border=0 src="../../image/delete.gif" width="61" height="15"></a> <a href="berichtedit.php?edit='.$row['bid'] . '"><img border=0 src="../../image/edit.gif" width="61" height="15"></a></td>';
echo '</tr>';
echo '</table><br>';
}
?>
$sql = "SELECT
b.van, b.bid,
b.onderwerp,
b.bericht,
DATE_FORMAT(b.datum, '%Y-%m-%d on %H:%i:%s') AS date_formatted,
a.atventaar,
a.id,
s.sigmature,
s.id,
g.naam,
g.sigmatureid,
g.atventaarid ,
DATE_SUB(NOW(),INTERVAL 5 MINUTE) <= g.lastactive AS online FROM
berichten AS b,
atventaar AS a,
sigmature AS s,
gebruikers AS g
LEFT JOIN g.atventaarid ON (a.id = g.atventaarid); WHERE
b.van = g.id AND
s.id = g.sigmatureid AND
b.naar = ".$_SESSION['user_id']." ORDER BY
b.datum DESC LIMIT ".$begin.", ".$eind."";
if(!$res = mysql_query($sql))
{
trigger_error(mysql_errno().': '.mysql_error().'. In de query: '.$sql);
}
while ($row = mysql_fetch_array($res)) {
$row['bericht'] = wordwrap($row['bericht'], 85, '<br>');
$row['bericht'] = smiley($row['bericht']);
echo '<table class="bericht" align="center" cellspacing="0" cellpadding="0">';
echo '<td background="../../image/balk.gif" height="26" colspan="2">From: <a href="../../profiel.php?mid='.$row['naam'] . '">'.$row['naam'] . '</a> Subject: '.$row['onderwerp'] .' Date: '.$row['date_formatted'] .'</td>';
echo '</tr>';
echo '<tr>';
echo '<td width="100" height="100" rowspan="2" valign="top">';
if($row['atventaarid'] == 0){
echo 'bump<br><center>';
}else{
echo '<img src="../atventaar/'.$row['atventaar'] .'" width="100" height="100"/><br><center>';
}
if($row['online'] == 1){
echo '<a class="online">Online';
}else{
echo '<a class="offline">Offline';
}
echo '</center></td><td class="bericht1" width="800" valign="top">'.$row['bericht'].'</td>';
echo '</tr>';
echo '<tr>';
echo '<td width="500" height="85"><img src="../sigmature/'.$row['sigmature'].'"/></td>';
echo '</tr>';
echo '<tr>';
echo '<td class="bericht2" colspan="2"><a href="re.php?re='.$row['bid'].'"><img border=0 src="../../image/replay.gif" width="61" height="15"></a> <a href="?delete='.$row['bid'] . '"><img border=0 src="../../image/delete.gif" width="61" height="15"></a> <a href="berichtedit.php?edit='.$row['bid'] . '"><img border=0 src="../../image/edit.gif" width="61" height="15"></a></td>';
echo '</tr>';
echo '</table><br>';
}
?>
Gewijzigd op 01/01/1970 01:00:00 door Derk Janssen
Dit geeft aan dat die alleen records selecteerd waar wel een atventaarid van bekend is, dus alleen de JOIN en dat stukje weg uit je WHERE
Maar op deze manier werkt hij dus ook niet. :(
LEFT JOIN g.atventaarid ON (a.id = g.atventaarid); WHERE
die is niet nodig denk ik maar als ik hem weg haal doet hij het nog niet
wat voor error krijg je?
Gewijzigd op 01/01/1970 01:00:00 door Derk Janssen
Staan je errors uitgeschakeld?
;) Notice: 1146: Table 'g.atventaarid' doesn't exist. In de query: SELECT b.van, b.bid, b.onderwerp, b.bericht, DATE_FORMAT(b.datum, '%Y-%m-%d on %H:%i:%s') AS date_formatted, a.atventaar, a.id, s.sigmature, s.id, g.naam, g.sigmatureid, DATE_SUB(NOW(),INTERVAL 5 MINUTE) <= g.lastactive AS online FROM berichten AS b, atventaar AS a, sigmature AS s, gebruikers AS g LEFT JOIN g.atventaarid ON (a.id = g.atventaarid) WHERE b.van = g.id AND s.id = g.sigmatureid AND b.naar = 1 ORDER BY b.datum DESC LIMIT 0, 10 in C:\Program Files\xampp\htdocs\community\blok\berichten\berichten.php on line 35