Hij zegt nee, terwijl ja het geval is(mysql)

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Dennis van der Meer

Dennis van der Meer

22/12/2005 21:04:00
Quote Anchor link
Dit is het gedeelte waar het om gaat.

$result = mysql_query("SELECT COUNT(msgid) FROM berichten WHERE username = ".$_SESSION['username']."");

if(empty($result))
{
echo "<script>alert('You have no messages in your inbox.'); document.location.href=('inbox.php')</script>";
}
else
{
mysql_query("DELETE FROM berichten WHERE username = " . $_SESSION['username'] . "") or die(mysql_error());

echo "<h1>Inbox Cleared</h1>";
echo "Inbox successfully cleared !";
echo "<br>\n<br>\n";
echo "<img src=\"test/icons/inbox.gif\"> <a href=\"inbox.php\">My Inbox</a>";
echo "<br>\n";
echo "<img src=\"test/icons/home.gif\"> <a href=\"beveiligde_pagina.php\">Home Page</a>";
}

Hij moet dus weergeven die alert geven als er geen berichten zijn. En anders de inbox deleten. Maar bij mij geeft hij die alert, terwijl er wel berichten zijn. Waar ligt dit aan?
 
PHP hulp

PHP hulp

25/01/2025 19:59:29
 
Jan Koehoorn

Jan Koehoorn

22/12/2005 21:07:00
Quote Anchor link
if(empty($result))

veranderen in:

if (mysql_num_rows ($result) == 0)
 
Frank -

Frank -

22/12/2005 21:10:00
Quote Anchor link
Zet na het uitvoeren van de SELECT-query eens:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
<?
echo mysql_num_rows($result);
?>


Welk getal wordt er nu op scherm getoond?

En heb je de queries al eens via phpmyadmin uitgevoerd? Wat waren de resultaten?
 
Dennis van der Meer

Dennis van der Meer

22/12/2005 21:16:00
Quote Anchor link
Dan krijg ik deze melding:

Warning: mysql_num_rows(): supplied argument is not a valid MySQL result resource in /usr/export/www/vhosts/funnetwork/hosting/picsupload/delete2.php on line 27
 
Frank -

Frank -

22/12/2005 21:21:00
Quote Anchor link
Quote:
En heb je de queries al eens via phpmyadmin uitgevoerd? Wat waren de resultaten?[/QUOTE] Wat leverde dit op?
 
Dennis van der Meer

Dennis van der Meer

22/12/2005 21:25:00
Quote Anchor link
#1054 - Unknown column 'd' in 'where clause' , terwijl d toch in de table staat.
 
Dennis van der Meer

Dennis van der Meer

22/12/2005 21:28:00
Quote Anchor link
Als ik het zo doe:

$result = mysql_query("SELECT COUNT(msgid) FROM berichten WHERE username = '".$_SESSION['username']."'"); en dan in phpmyadmin doet ie et goed, maar via php niet.
 
Frank -

Frank -

22/12/2005 21:31:00
Quote Anchor link
Dennis:
#1054 - Unknown column 'd' in 'where clause' , terwijl d toch in de table staat.


d ??? Waar komt 'd' vandaan? Dat moet een andere query zijn, in bovenstaande queries noem je deze namelijk niet.
 
Dennis van der Meer

Dennis van der Meer

22/12/2005 21:31:00
Quote Anchor link
En als ik dit doe: echo mysql_num_rows($result); met bovenstaande select dan krijg ik 1 als uittvoer, terwijl er 3 berichten zijn. Maar als ik echo mysql_num_rows($result); niet heb en de rest va de code wel inclusief bovenstaande select krijg ik de melding Unknown column 'd' in 'where clause'
 
Dennis van der Meer

Dennis van der Meer

22/12/2005 21:32:00
Quote Anchor link
d is de $_SESSION['username']
Gewijzigd op 22/12/2005 21:33:00 door Dennis van der Meer
 
Frank -

Frank -

22/12/2005 21:34:00
Quote Anchor link
Nee, d wordt als een kolomnaam gezien, zie de foutmelding.
 
Dennis van der Meer

Dennis van der Meer

22/12/2005 21:37:00
Quote Anchor link
Ja, maar hoe zorg ik er dan voor dat hij d als de username in de kolom username ziet.

Hoe moet ik deze regel dan aanpassen:

$result = mysql_query("SELECT COUNT(msgid) FROM berichten WHERE username = '".$_SESSION['username']."'");
Gewijzigd op 22/12/2005 21:38:00 door Dennis van der Meer
 
Jan Koehoorn

Jan Koehoorn

22/12/2005 21:37:00
Quote Anchor link
En als zo is zal het komen omdat er geen quotes omheen staan vermoedelijk. Echo je query eens naar het scherm?
 
Dennis van der Meer

Dennis van der Meer

22/12/2005 21:39:00
Quote Anchor link
Als ik zo doe:
$result = mysql_query("SELECT COUNT(msgid) FROM berichten WHERE username = '".$_SESSION['username']."'");
echo $result;

krijg ik: Resource id #5
Gewijzigd op 22/12/2005 21:41:00 door Dennis van der Meer
 
- SanThe -

- SanThe -

22/12/2005 21:39:00
Quote Anchor link
Frank:
Nee, d wordt als een kolomnaam gezien, zie de foutmelding.


Dat komt omdat de 'session's username' niet tussen enkele quotes staat. Dan wordt het als een colomn gezien.
 
Jan Koehoorn

Jan Koehoorn

22/12/2005 21:40:00
Quote Anchor link
<onzin post> heb mijn tekst verwijderd
Gewijzigd op 22/12/2005 21:41:00 door Jan Koehoorn
 
- SanThe -

- SanThe -

22/12/2005 21:45:00
Quote Anchor link
Dennis:
Als ik zo doe:
$result = mysql_query("SELECT COUNT(msgid) FROM berichten WHERE username = '".$_SESSION['username']."'");
echo $result;

krijg ik: Resource id #5



Nee, anders doen:
$query = "SELECT COUNT(msgid) FROM berichten WHERE username = '".$_SESSION['username']."'";
echo $query;
$result = mysql_query($query);
 
Dennis van der Meer

Dennis van der Meer

22/12/2005 23:17:00
Quote Anchor link
Edit: het lukt

in deze regel ook die ' en ' vergeten.

mysql_query("DELETE FROM berichten WHERE username = " . $_SESSION['username'] . "") or die(mysql_error());

Bedankt mensen.
Gewijzigd op 22/12/2005 23:19:00 door Dennis van der Meer
 
Willem Jan Z

Willem Jan Z

23/12/2005 01:06:00
Quote Anchor link
Je hebt hier nog steeds geen ' eromheen staan :S
 



Overzicht Reageren

 
 

Om de gebruiksvriendelijkheid van onze website en diensten te optimaliseren maken wij gebruik van cookies. Deze cookies gebruiken wij voor functionaliteiten, analytische gegevens en marketing doeleinden. U vindt meer informatie in onze privacy statement.