Page 1 sur 5

erreur dans mon code php

Posté : 07 août 2011, 21:26
par msi79
salut a vous j'ai crée une table a partir de laquelle je veux faire un SELECT mais je reçois l'erreur :
-----------------------------------------------------------------------------------------
Warning: mysql_fetch_assoc() expects parameter 1 to be resource, boolean given in C:\wamp\www\Monsite\liste_4eme5.php on line 78
------------------------------------------------------------------------------------------------
voici mon code php :

------------------------------------------------------------------------------------------------------------


<?php


    $_POST["NOM"]="";     $_POST["PRENOM"]="";   $_POST["CLASSE"]='';    
    $NOM=trim($_POST["NOM"]);
	$PRENOM=trim($_POST["PRENOM"]);
	$CLASSE=trim($_POST["CLASSE"]);
	
	
	
	$color=array('#333333','#999999');
		$i=0;

// on se connecte à ORACLE situé sur redhat 5
      $conn = oci_connect("zana", "cool75sool", '(DESCRIPTION =
    (ADDRESS_LIST =
      (ADDRESS = (PROTOCOL = TCP)(HOST = localhost.localdomain)(PORT = 1521))
      (ADDRESS = (PROTOCOL = TCP)(HOST = localhost.localdomain)(PORT = 1521))
    )
    (CONNECT_DATA =
      (SERVER = DEDICATED)
      (SERVICE_NAME = orcldb)
      (INSTANCE_NAME = orcldb)
      (GLOBAL_NAME = orcldb)
    ))');
    	


// on crée la requête SQL
 
$result = oci_parse($conn,"SELECT NOM,PRENOM,CLASSE FROM eleve WHERE CLASSE='4eme5' ORDER BY NOM ASC");
$req = oci_execute($result);


?>



<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<title>Document sans titre</title>
<style type="text/css">
<!--
.Style3 {color: #FFFFFF}
.Style4 {color: #FFFFFF; font-weight: bold; }
.Style5 {
	color: #CCCCCC;
	font-weight: bold;
}
-->
</style>
</head>

<body>

<div align="center">
  <h1><a href="MonSiteOK.php" title="click pour voir votre Note  !!!!" class="Style5">
    <input type="image" name="imageField" src="btmylod_1.png" />
    </a><em>>>> LISTE DES ELEVES DE 4&egrave;me 5 </em> <<<
  </h1>
</div>
<p>&nbsp;</p>
<table width="729" border="0" align="center" cellspacing="2">
  <tr bgcolor="#999999">
    <th width="233" scope="row"><span class="Style3">NOM</span></th>
    <td width="274"><div align="center" class="Style4">PRENOM</div></td>
    <td width="208"><div align="center" class="Style4">CLASSE</div></td>
    
  </tr>
  
  
   <?php
  		while ($liste_etu=mysql_fetch_assoc($req)) {
			$j=$i%2;
		
  ?>
  
  
  <tr bgcolor=#33FFFF>
    
	
    <td><?php echo "{$row['NOM']}" ?></td>
    <td><?php echo $liste_etu['PRENOM'] ?></td>
    <td><?php echo $liste_etu['CLASSE'] ?></td>
    <td><?php echo $liste_etu['CEL'] ?></td>
  </tr>
  <?php
  }
  ?>

 
</table>
</body>
</html>

Re: erreur dans mon code php

Posté : 07 août 2011, 22:48
par Cyrano
Ta base, c'est du Oracle ou du MySQL ? Parce qu'on ne peut pas mélanger les fonctions comme tu le fais.

Re: erreur dans mon code php

Posté : 07 août 2011, 22:50
par msi79
oui merci j'ai corrigé ca passe .
ma base c'est oracle

Re: erreur dans mon code php

Posté : 07 août 2011, 22:51
par Cyrano
Résolu alors ?

Re: erreur dans mon code php

Posté : 07 août 2011, 22:59
par msi79
oui merci

Re: erreur dans mon code php

Posté : 08 août 2011, 00:18
par msi79
je suis encore la .
j'ai essayé d’améliorer mon code mais je reçois une erreur .
svp aider moi :
je recçio l'ereur :
*****************************************************************************************************************
Notice: Undefined variable: result1 in C:\wamp\www\Monsite\liste_4eme5.php on line 98

Notice: Undefined variable: sql in C:\wamp\www\Monsite\liste_4eme5.php on line 98

Warning: oci_fetch_assoc() expects exactly 1 parameter, 2 given in C:\wamp\www\Monsite\liste_4eme5.php on line 98

------------------------------------------------------------------------------------------------------------
le code
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++



<?php

if (isset($_POST["Enregistrer"])) {
    $_POST["NOM"]="";     $_POST["PRENOM"]="";   $_POST["CLASSE"]='';    $_POST["NOTE"]=''; 
    $NOM=trim($_POST["NOM"]);  
	$PRENOM=trim($_POST["PRENOM"]);
	$CLASSE=trim($_POST["CLASSE"]);
	$NOTE=trim($_POST["NOTE"]);
	
	
	
	$color=array('#333333','#999999');
		$i=0;

// on se connecte à ORACLE situé sur redhat 5
      $conn = oci_connect("zana", "cool75sool", '(DESCRIPTION =
    (ADDRESS_LIST =
      (ADDRESS = (PROTOCOL = TCP)(HOST = localhost.localdomain)(PORT = 1521))
      (ADDRESS = (PROTOCOL = TCP)(HOST = localhost.localdomain)(PORT = 1521))
    )
    (CONNECT_DATA =
      (SERVER = DEDICATED)
      (SERVICE_NAME = orcldb)
      (INSTANCE_NAME = orcldb)
      (GLOBAL_NAME = orcldb)
    ))');
    	


// on crée la requête SQL
 
$result1 = oci_parse($conn,"SELECT NOM,PRENOM,CLASSE FROM eleve WHERE CLASSE='4eme5' ORDER BY NOM ASC");
$req = oci_execute($result1);

	if (!empty($NOM)) { $sql=oci_parse($conn,"INSERT INTO participe(NOTE) values('".$NOTE."')");
	  $result = oci_execute($sql);
	
	}
	
    //Analyse et exécution d'autres commandes ici...


    // Validation de la transaction
    $committed = oci_commit($conn);

    // Vérification de la validation : si une erreur est survenue, afficher
    // le message d'erreur
    if (!$committed) {
        $error = oci_error($conn);
        echo 'Validation échouée. Oracle dit : ' . $error['message'];
    }
	else{ echo '------------------------Insersion OK !!!!!!!!!';}
	
	}
	
?>



<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<title>Document sans titre</title>
<style type="text/css">
<!--
.Style3 {color: #FFFFFF}
.Style4 {color: #FFFFFF; font-weight: bold; }
.Style5 {
	color: #CCCCCC;
	font-weight: bold;
}
-->
</style>
</head>

<body>

<div align="center">
  <h1><a href="MonSiteOK.php" title="Acceuil !!!!" class="Style5">
    <input type="image" name="imageField" src="btmylod_1.png" />
    </a><em>>>> LISTE DES ELEVES DE 4&egrave;me 5 </em> <<<
  </h1>
</div>
<form id="form1" name="form1" method="post" action="">
  <table width="1065" border="0" align="center" cellspacing="2">
    <tr bgcolor="#999999">
      <th width="233" scope="row"><span class="Style3">NOM</span></th>
      <td width="274"><div align="center" class="Style4">PRENOM</div></td>
      <td width="208"><div align="center" class="Style4">CLASSE</div></td>
      <td width="144"><div align="center" class="Style4">NOTE</div></td>
      <td width="184"><div align="center" class="Style4">MaNote</div></td>
    </tr>
    <?php
	         while($liste_etu=oci_fetch_assoc(($result1),($sql))) {			
			 $j=$i%2;
		
  ?>
    <tr bgcolor="#33FFFF">
      <td><?php echo $liste_etu['NOM'] ?></td>
      <td><?php echo $liste_etu['PRENOM'] ?></td>
      <td><?php echo $liste_etu['CLASSE'] ?></td>
      <td><input type="text" name="NOTE"  value=" 000000,0000"/></td>
      <td><?php echo $liste_etu['NOTE'] ?></td>
    </tr>
    <tr bgcolor="#33FFFF">
      <td><input type="submit" name="Enregistrer" value="Enregistrer" /></td>
      <td><input type="submit" name="annule" value="Annuler" /></td>
      <td>&nbsp;</td>
      <td>&nbsp;</td>
      <td>&nbsp;</td>
    </tr>
    
    <?php
  }
?>
  </table>
  <p>&nbsp;</p>
  <p>&nbsp;</p>
  <p>&nbsp;</p>
</form>
<p>&nbsp;</p>
</body>
</html>

Re: erreur dans mon code php

Posté : 08 août 2011, 00:56
par moogli
salut,

les messages sont relativement clair :

Notice: Undefined variable: result1 in C:\wamp\www\Monsite\liste_4eme5.php on line 98
=>ligne 98 tu utilise la variable $result1 mais celle ci n'existe pas !

Notice: Undefined variable: sql in C:\wamp\www\Monsite\liste_4eme5.php on line 98
=>ligne 98 tu utilise la variable $sql mais celle ci n'existe pas !(pourquoi essayer de passer le retour d'une insertion à une oci_fetch_assoc ????

Warning: oci_fetch_assoc() expects exactly 1 parameter, 2 given in C:\wamp\www\Monsite\liste_4eme5.php on line 98
=> la aussi c'est clair tu passe deux paramètres à la fonction oci_fetch_assoc alors qu'elle n'en prend qu'un en paramètre ! doc de la fonction oci_fetch_assoc

le submit devrait être en dehors de la boucle, parce que lava y avoir autant de bouton submit / annulé que de tuple.

la colonne classe est facultative car elle est déja indiqué (4ème5) ;)

pour le fonctionnement du formulaire, si tu souhaite pouvoir exploiter les infos rentré dans le champ il va falloir faire autrement (parce que l'a t'a qu'un champs). Pour être exploitable il faut utiliser la notation tableau pour le nommage du champs (note devient : note[]) chaque nouvel élève ajoutera une ligne de tableau.
maintenant il faut pouvoir reconnaître chaque ligne afin de mettre la bonne note au bon élève lors de la modification de la base.

Pour cela le mieux c'est un champ input de type hidden avec la clef primaire en valeur (exemple la clefprimaire se nomme id => <input type="hidden" name="id[]" value"valeur issue de la db" />) ceci avec la note tu aura deux tableaux dans $_POST avec les même indice qu'il te suffira de parcourir avec foreach.

exemple de code modifé (toujours en supposant que la clef primaire est id).
<?php

if (isset($_POST["Enregistrer"])) {
$_POST["NOM"]=""; $_POST["PRENOM"]=""; $_POST["CLASSE"]=''; $_POST["NOTE"]=''; 
$NOM=trim($_POST["NOM"]); 
$PRENOM=trim($_POST["PRENOM"]);
$CLASSE=trim($_POST["CLASSE"]);
$NOTE=trim($_POST["NOTE"]);



$color=array('#333333','#999999');
$i=0;

// on se connecte à ORACLE situé sur redhat 5
$conn = oci_connect("zana", "cool75sool", '(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = localhost.localdomain)(PORT = 1521))
(ADDRESS = (PROTOCOL = TCP)(HOST = localhost.localdomain)(PORT = 1521))
)
(CONNECT_DATA =
(SERVER = DEDICATED)
(SERVICE_NAME = orcldb)
(INSTANCE_NAME = orcldb)
(GLOBAL_NAME = orcldb)
))');



// on crée la requête SQL

$result1 = oci_parse($conn,"SELECT id, NOM,PRENOM,CLASSE FROM eleve WHERE CLASSE='4eme5' ORDER BY NOM ASC");

$req = oci_execute($result1);

if (!empty($NOM)) { $sql=oci_parse($conn,"INSERT INTO participe(NOTE) values('".$NOTE."')");
$result = oci_execute($sql);

}

//Analyse et exécution d'autres commandes ici...


// Validation de la transaction
$committed = oci_commit($conn);

// Vérification de la validation : si une erreur est survenue, afficher
// le message d'erreur
if (!$committed) {
$error = oci_error($conn);
echo 'Validation échouée. Oracle dit : ' . $error['message'];
}
else{ echo '------------------------Insersion OK !!!!!!!!!';}

}

?>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<title>Document sans titre</title>
<style type="text/css">
<!--
.Style3 {color: #FFFFFF}
.Style4 {color: #FFFFFF; font-weight: bold; }
.Style5 {
color: #CCCCCC;
font-weight: bold;
}
-->
</style>
</head>

<body>

<div align="center">
<h1><a href="MonSiteOK.php" title="Acceuil !!!!" class="Style5">
<input type="image" name="imageField" src="btmylod_1.png" />
</a><em>>>> LISTE DES ELEVES DE 4&egrave;me 5 </em> <<<
</h1>
</div>
<form id="form1" name="form1" method="post" action="">
<table width="1065" border="0" align="center" cellspacing="2">
<tr bgcolor="#999999">
<th width="233" scope="row"><span class="Style3">NOM</span></th>
<td width="274"><div align="center" class="Style4">PRENOM</div></td>
<td width="208"><div align="center" class="Style4">CLASSE</div></td>
<td width="144"><div align="center" class="Style4">NOTE</div></td>
<td width="184"><div align="center" class="Style4">MaNote</div></td>
</tr>
<?php
$i=0;
$paire= '33FFFF';
$impaire= 'C0C0C0';
while($liste_etu = oci_fetch_assoc($result1)) {	
//$j=$i%2;// ça sert pas ça ? c'est pour un changement de bgcolor une ligne sur deux ? d'ailleurs $i n'est pas déclarée ?

?>
<tr bgcolor="#<?php 
if( ($i%2) === 0) echo $paire;
else echo $impaire; ?>">
<td><?php echo $liste_etu['NOM'] ?></td>
<td><?php echo $liste_etu['PRENOM'] ?></td>
<td><?php echo $liste_etu['CLASSE'] ?></td>
<td><input type="text" name="note[]" value=" 000000,0000"/><input type="hidden" name="id[]" value="<?php echo $list_etu['id']?></td>
<td><?php echo $liste_etu['NOTE'] ?></td>
</tr>

<?php
$i++;
}
<tr bgcolor="#33FFFF">
<td><input type="submit" name="Enregistrer" value="Enregistrer" /></td>
<td><input type="submit" name="annule" value="Annuler" /></td>
<td>&nbsp;</td>
<td>&nbsp;</td>
<td>&nbsp;</td>
</tr>

?>
</table>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
</form>
<p>&nbsp;</p>
</body>
</html>
pour $result1 utilise var_dump pour voir ce qui se passe :)

@+

Re: erreur dans mon code php

Posté : 08 août 2011, 01:06
par msi79
voici ce que je reçois comme erreur :

***************************************************************************************************
Parse error: parse error in C:\wamp\www\Monsite\liste_4eme5.php on line 114
************************************************************************************************

à la ligne 114 jai ca ::<tr bgcolor="#33FFFF">

Re: erreur dans mon code php

Posté : 08 août 2011, 01:10
par Cyrano
Logique, observe attentivement et demande toi s'il ne manque rien entre la ligne 113 et la ligne 114, ça devrait te sauter aux yeux, même la coloration syntaxique te donne des indices.

Re: erreur dans mon code php

Posté : 08 août 2011, 01:23
par msi79
je suis vraiment debutant . je vois pas s'il te plai aide moi

Re: erreur dans mon code php

Posté : 08 août 2011, 01:35
par Cyrano
Tu mélanges du PHP et du HTML, mais pour ce faire, tu dois donc selon l'endroit ouvrir une balise PHP (<?php) et plus loin la refermer ( ?> ) Ce qui se trouve entre une fermeture et une ouverture (et pas dans l'autre sens, c'est important) sera envoyé tel-quel au navigateur. Ce qui se trouve entre l'ouverture et la fermeture sera exécuté du coté du serveur. Si tu mets du code qui n'est pas du PHP entre une ouverture et une fermeture, tu as ce type de message d'erreur.

En d'autres termes, tu as bien mis toutes les ouvertures et toutes les fermetures, mais une des fermeture n'est pas à sa place, elle est trop loin et du coup l'interpréteur PHP doit batailler avec du HTML au lieu de PHP : regarde encore, tu vas trouver.

Note : je ne te donne pas la réponse toute faite, c'est le type même d'erreur d'inattention que tu ne dois plus faire, en devant t'arracher quelque cheveux à trouver, tu vas le retenir d'autant plus et tu ne feras sûrement plus ce type de boulette ;)

Re: erreur dans mon code php

Posté : 08 août 2011, 01:47
par sam12
En gros, tu as ouvert une balise php, mis du php puis du html et tu as refermé ta balise php.
Tu dois donc déplacer ta balise de fermeture avant le html.

Là je ne peux pas être plus précis :lol:

Re: erreur dans mon code php

Posté : 08 août 2011, 12:10
par msi79
salut merci pour votre aide . hier j'avais mal au crane . je suis allé dormir .
j'ai déplace la balise php pour la mettre juste après la parenthèse .
l'autre erreur n’apparaît plus mais je reçois une autre erreur :

***************************************************************************************************************


Notice: Undefined variable: result1 in C:\wamp\www\Monsite\liste_4eme53.php on line 97

Warning: oci_fetch_assoc() expects parameter 1 to be resource, null given in C:\wamp\www\Monsite\liste_4eme53.php on line 97

Re: erreur dans mon code php

Posté : 08 août 2011, 12:23
par Cyrano
Logique, mais ça doit se produire uniquement au premier chargement avant de soumettre le formulaire.

Pose-toi la question suivante : quand est créée cette variable $result1 ? Là, tu as une erreur de logique et de la manière dont tu as organisé ton code, lors du chargement de la page, $result1 n'est pas définie du tout.

Et dis-toi que ce n'est pas la seule erreur qu'il reste dans ton code. Tu en as une autre ligne 4 et une autre encore ligne 107. La première est une erreur de logique, la seconde une faute d'inattention.

Pour avancer, essaye de décrire dans tes propres mots le déroulement de ton code : il se passe quoi à quel moment et pour quelle raison. C'est de l'algorithme et de la logique élémentaire. Si tu veux progresser, il va falloir être attentif et cohérent.

Re: erreur dans mon code php

Posté : 08 août 2011, 12:27
par msi79
ok merci plus d'erreur mais je comprend pas pourqoi mes resultat ( de la requète ) ne viennent l'un en bas de l'aute . ca me donne les resultat sur un meme ligne