Erreur PHP : mysql_fetch_assoc(): supplied...

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 :

<?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

  1. R4f Messages postés 441 Statut Membre 62
     
    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
  2. DAG
     
    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