Machine klaagt bij het gebruik van sommige mysql_ commands

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Sandy Cohen

Sandy Cohen

24/12/2008 19:14:00
Quote Anchor link
Ik heb het idee dat het bij machine zelf ligt (ik gebruik xampp), maar het zou ook aan de code kunnen liggen.

Bij het gebruik van
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
<?
while($row = mysql_fetch_assoc($today_output)) {
echo $row["ip"];
echo $row["date"];
}


mysql_free_result($today_output);
?>

ontvang ik

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
Warning: mysql_fetch_assoc(): supplied argument is not a valid MySQL result resource in C:\xampp\htdocs\query.php on line 18

Warning: mysql_free_result(): supplied argument is not a valid MySQL result resource in C:\xampp\htdocs\query.php on line 23


Enige idee waaraan het ligt?

Quote:
Topic verplaatst.

SanThe.
Gewijzigd op 01/01/1970 01:00:00 door Sandy Cohen
 
PHP hulp

PHP hulp

08/11/2024 18:02:20
 
Noppes

Noppes

24/12/2008 19:21:00
Quote Anchor link
Iets meer relevante code zal niet weg zijn

het is overigens:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
<?php
if ($link_identifier = mysql_connect()) {
    if(!mysql_select_db('<datbase>')) {
      echo 'database kan niet geselecteerd worden';
   }
}


if ($link_identifier) {
   $sql =  "<sql statement>"
  if ($result = mysql_query($sql))
    
     while ($row = mysql_fetch_assoc($result)) {
             print_r($row,true);
     }
  }

  else {
    echo mysql_error().' <br />';
    echo $sql;
 }
}

else {
   echo 'Geen database connectie';
}

?>


Zoeken naar de foutmelding wil ook nog wel is helpen:
klik hier
Gewijzigd op 01/01/1970 01:00:00 door Noppes
 
Sandy Cohen

Sandy Cohen

24/12/2008 19:33:00
Quote Anchor link
Script komt foutloos door de engine, alleen $sql geeft geen result weer.
 
Noppes

Noppes

24/12/2008 19:40:00
Quote Anchor link
Tja het is pseudo voorbeeld script dus wat heb je er van gebakken?
 
Sandy Cohen

Sandy Cohen

24/12/2008 19:52:00
Quote Anchor link
niet echt veel
Gewijzigd op 01/01/1970 01:00:00 door Sandy Cohen
 
Noppes

Noppes

24/12/2008 20:04:00
Quote Anchor link
Met dat soort antwoorden kom je niet tot een oplossing

post de relevante code

En stel je zelf de volgende vragen:
zitten er wel gegevens in de tabel waaruit ik gegevens wil selecteren
geeft mijn query wel resultaten terug als ik een where clause toepas
 
Sandy Cohen

Sandy Cohen

24/12/2008 20:12:00
Quote Anchor link
ben bezig geweest aan het script, ben tot dit uitgekomen:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
14
<?
echo "There users have created an account today:<br />";

mysql_select_db('logon', $con);
$sql = mysql_query("SELECT * FROM logger");
while($result = mysql_fetch_array($sql)){
echo $result['user'];
echo "  ";
echo $result['ip'];
echo "  ";
echo $result['date'];
echo "  <br />";
}

?>
 
Noppes

Noppes

24/12/2008 20:15:00
Quote Anchor link
Je kan ook nog deoon

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
<?php
if (mysql_num_rows($sql)>0) {
    while($result = mysql_fetch_array($sql)){
    
    }
}

else {
   echo 'Geen gevens in tabel aanwezig...';
}

?>


En wees niet zo eigenwijs om die foutafhandeling achterwege te laten.
 
Sandy Cohen

Sandy Cohen

24/12/2008 20:17:00
Quote Anchor link
dan geeft ie toch weer het aantal rows?

btw, is er ook de mogelijkheid om elk rijtje alleen te echo-en, als de waarde in kolom 'date' gelijk is aan $date (date();)
 
Noppes

Noppes

24/12/2008 20:26:00
Quote Anchor link
Lees het stukje code nog eens

en
is er ook de mogelijkheid om elk rijtje alleen te echo-en, als de waarde in kolom 'date' gelijk is aan $date (date();)

los je op met ene where clause
 
Sandy Cohen

Sandy Cohen

24/12/2008 20:31:00
Quote Anchor link
$sql = mysql_query("SELECT * FROM logger WHERE date='$date'");

bedankt
 
Noppes

Noppes

24/12/2008 20:39:00
Quote Anchor link
Nee,

het is:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
<?php
$sql
= "SELECT *
           FROM logger
           WHERE date = CURDATE()"
;
if ($result = mysql_query($sql)) {
   // resultaat doorlopen en tonen

}
else {
    // foutafhadenling!
}
?>


overigens is date niet een veldnaam welke aan te bevelen is, dat neigt namenlijk naar gereserveerd woord
zie: http://dev.mysql.com/doc/refman/5.1/en/reserved-words.html


Ik denk dat je er verstandiger aan doet eerst wat tuts door te nemen........
http://www.phphulp.nl/php/tutorials/
 
Frank -

Frank -

26/12/2008 10:38:00
Quote Anchor link
Quote:
Machine klaagt bij het gebruik van sommige mysql_ commands
Gebruik dan ook geen MySQL, een nog veel slechtere database zul je niet tegenkomen! Dramabase is dan ook een beter begrip...

Installeer een betrouwbare database op je pc en je hebt al veel minder problemen. Kijk eens naar PostgreSQL, Firebird of weet ik veel wat, alles is beter dan de brakke ellende waar je nu mee werkt.

Wil niet zeggen dat je niets aan foutafhandeling hoeft te doen. Sterker nog, andere databases zullen bij fouten in jouw SQL veel meer (bruikbare) foutmeldingen opleveren dan MySQL! MySQL verneukt jouw data en/of resultaten zonder jou daarvan op de hoogte te stellen...

@Noppes: CURDATE() mag je vervangen door CURRENT_DATE, dat werkt ook met andere databases.
 



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.