Erreur PHP : mysql_fetch_assoc(): supplied...
DAG
-
DAG -
DAG -
Bonjour, je suis en train développer une application web en php. Je ne connais pas trop ce langage alors ça n'avance pas très vite ! Et d'ailleurs j'ai même des erreurs ! Je poste mon code :
Si je laisse le "
Et sinon, sans ça :
Pourtant il y a des donnees dans la table...
Si quelqu'un a une idée ?
Merci d'avance.
<?php
$TYPE_COMPUTER = $_POST['$TYPE_COMPUTER'];
?>
(...)
<?php
if ($TYPE_COMPUTER!=null)
{
$tList = "SELECT COUNT( * ) AS 'nb2' FROM table1 c JOIN table2 o ON c.type=o.id AND o.name='$TYPE_COMPUTER';";
}
$responseListType = mysql_query($tList) or die(mysql_error());
$rListType = mysql_fetch_assoc($responseListType);
echo "Le nombre de machine(s) de type '" . $TYPE_COMPUTER . "' est de : " . $rListType['nb2'] . ".";
?>
(...)
<?php
$requType = mysql_query("SELECT name FROM table2");
?>
(...)
<?php
<form id="listPC" action="test2.php" method="POST" >
<h3>Tri des machine :</h3>
choisir une machine :
<select id="TYPE_COMPUTER" name="TYPE_COMPUTER">
<?php
while($donneesRequType = mysql_fetch_assoc($requType))
{
?>
<OPTION value="<?php echo $donneesRequType['name']; ?>">
<?php echo $donneesRequType['name']; ?>
</OPTION>
<?php
}
?>
</select>
<input type="submit" id="Send" value="Valider" />
</form>
Si je laisse le "
or die(mysql_error())" il me sort que la requête est vide.
Et sinon, sans ça :
Warning: mysql_fetch_assoc(): supplied argument is not a valid MySQL result resource in E:\wamp\www\tests\test2.php on line 63
Pourtant il y a des donnees dans la table...
Si quelqu'un a une idée ?
Merci d'avance.
2 réponses
-
Pour la requête, il faut sans doute utiliser INNER JOIN ou LEFT JOIN ou RIGHT JOIN, non ?
Sinon, le code actuel est «optimiste», c'est à dire qu'il est fait comme si tout allait toujours bien se passer, genre une automobile sans pare-choc, sans ceinture de sécurité, tu vois ?
Voici un code qui fait toute les vérifications nécessaire. Il est donc vraiment plus simple à debugger :
$dbh = @mysql_connect('localhost', 'root', ''); if ($dbh === FALSE) { echo "Erreur de connexion : ".mysql_error(); exit(); } # SELECTION DE LA BASE DE DONNÉES if (@mysql_select_db('test', $dbh) === FALSE) { echo "Erreur de sélection de base : ".mysql_error(); exit(); } $sql="SELECT id, headline, postbody, posted_on FROM blog "; # MAINTENANT, EXÉCUTONS LA REQUÈTE $sth = mysql_query($sql, $dbh); if ($sth === FALSE) { echo "Erreur de requête ($sql) : ".mysql_error(); exit(); } while ($aRow = mysql_fetch_array($sth)) { # ... } mysql_close($dbh);
Plus long que la version optimiste, mais plus réaliste ;-)
Raph -
Salut,
Merci du conseil, j'ai appliqué tout ça et ça marche sans problème.
J'ai, en plus de ça réorganisé mon code en fonctions ! Je ça deviens plus claire, de plus je sens que je progresse en PHP ;-)
Merci encore pour ta réponse et désolé de répondre un peu tard.
A+