Erreur PHP : mysql_fetch_assoc(): supplied...

Fermé
DAG - 17 avril 2008 à 19:56
 DAG - 22 avril 2008 à 15:02
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 :

<?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.
A voir également:

2 réponses

R4f Messages postés 441 Date d'inscription dimanche 13 janvier 2008 Statut Membre Dernière intervention 5 mai 2008 62
17 avril 2008 à 23:33
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
0
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+
0