Posez votre question Signaler

Erreur PHP : mysql_fetch_assoc(): supplied...

DAG - Dernière réponse le 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.
Lire la suite 

Erreur PHP : mysql_fetch_assoc(): supplied »

2 réponses
Réponse
+0
moins plus
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
Ajouter un commentaire
Réponse
+0
moins plus
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+
Ajouter un commentaire
Ce document intitulé « Erreur PHP : mysql_fetch_assoc(): supplied... » issu de CommentCaMarche (www.commentcamarche.net) est mis à disposition sous les termes de la licence Creative Commons. Vous pouvez copier, modifier des copies de cette page, dans les conditions fixées par la licence, tant que cette note apparaît clairement.
Dossier à la une
Passage au tout numérique : quel coût pour les particuliers ?