Problème Foreach

Eléphanteau du PHP | 26 Messages

19 avr. 2006, 11:41

Bonjour,

alors là, y a un truc qui doit m'échapper. Ca fait je ne sais pas le quantième que je fait, et celui ci il me dis merde.

Voici l'erreur:
Warning: Invalid argument supplied for foreach() in c:\program files\easyphp1-8\www\etstudio\admin\mod_centre.php on line 83
Voici le code:
function listEdit(){
if(isset($_GET['id_ress'])){
	$ress_edit = $_GET['id_ress'];
	$query = "SELECT * FROM t_ressource WHERE id_ress= '$ress_edit'";
	$result = mysql_query($query) or die(mysql_error());
		while($ress_edit = mysql_fetch_object($result)){
		$arRess_edit[$ress_edit->id_ress ] = array('id'=>$ress_edit->id_ress, 'titre'=>$ress_edit->titre_ress, 'jpg'=>$ress_edit->img_ress, 'pdf'=>$ress_edit->pdf_ress, 'eps'=>$ress_edit->eps_ress, 'pub_ress'=>$ress_edit->pub_ress);
		}	
	}
}
<?php
if (isset($_GET['id_ress'])){ 
  $listEdit = listEdit();
	foreach($listEdit as $key=>$val){ // LIGNE 83
	
  ?>
  	<form id="centre" method="post" enctype="multipart/form-data" name="add_ress" action="<?php echo $_SERVER['PHP_SELF']; ?>">
        <p>
          <label>Nom*:</label>
          <input name="nom" type="text" value="<? $val['titre'] ?>" />
        </p>
        <p>
          <label>.JPG*:</label>
          <input name="jpg" type="file" />
        </p>
        <p>
          <label>.PDF:</label>
          <input name="pdf" type="file" />
        </p>
        <p>
          <label>.EPS:</label>
          <input name="eps" type="file" />
        </p>
        <p>
          <label>Publication:</label>
          <select name="pub">
            <option value="y">Oui</option>
            <option value="n">Non</option>
          </select>
        </p>
        <input name="submit_add_ress" type="submit" value="Enregistrer" />
      </form>
	<?php
	}....
        //else avec autre fonctionalité qui fonctionne et qu'y n'a rien avoir.
Comme d'ab...c'est surment encore une connerie :cry:

Merci
Kevin

ps: bien sur tout les autres éléments du trableau serront utilisé.
Etudiant -- Infographiste Web/Multimédia

Mammouth du PHP | 684 Messages

19 avr. 2006, 11:46

Salut.

Pour un petit debuggage rapide :
<?php
if (isset($_GET['id_ress'])) {
    $listEdit = listEdit();
    echo '<pre>';print_r($listEdit);echo '</pre>';
    foreach($listEdit as $key => $val){ // LIGNE 83
?> 
Ca t'aidera peut-etre de voir ce que te retoure ton tableau.
Zigz4g

Avatar du membre
Modérateur PHPfrance
Modérateur PHPfrance | 10684 Messages

19 avr. 2006, 11:48

Warning: Invalid argument supplied for foreach() in c:\program files\easyphp1-8\www\etstudio\admin\mod_centre.php on line 83
L'argument passé au foreach n'est pas correct... sachant que le foreach attend un tableau, il faut aller voir du côté de $listEdit.
$listEdit = listEdit(); 
Allons donc voir du côté de listEdit() :)
function listEdit(){ 
  if(isset($_GET['id_ress'])){ 
    $ress_edit = $_GET['id_ress']; 
    $query = "SELECT * FROM t_ressource WHERE id_ress= '$ress_edit'"; 
    $result = mysql_query($query) or die(mysql_error()); 
    while($ress_edit = mysql_fetch_object($result)){ 
      $arRess_edit[$ress_edit->id_ress ] = array(
         'id'=>$ress_edit->id_ress,
         'titre'=>$ress_edit->titre_ress,
         'jpg'=>$ress_edit->img_ress,
         'pdf'=>$ress_edit->pdf_ress,
         'eps'=>$ress_edit->eps_ress,
         'pub_ress'=>$ress_edit->pub_ress
       ); 
    }     
  } 
} 
Données en entrée de la fonction : aucun
Données en sortie de la fonction : aucun

C'est donc normal que ton $listEdit ne contienne pas de tableau ;)

Eléphanteau du PHP | 26 Messages

19 avr. 2006, 12:00

Heuuu ](*,) #-o

Je ne vois pas du tout où est mon erreur même avec ce que tu me dis.
Le <pre> ne me retourne rien. Logique si ma fonction est vide.

Je ne vois pas du tout mes autres foreach sont fait comme ça, c'est même un copier collé celui ci, et ils fonctionnent à merveils.
Etudiant -- Infographiste Web/Multimédia

Avatar du membre
Modérateur PHPfrance
Modérateur PHPfrance | 10684 Messages

19 avr. 2006, 12:04

Données en entrée de la fonction : aucun
Données en sortie de la fonction : aucun
Il n'y a vraiment rien qui te choque ? :)

Eléphanteau du PHP | 26 Messages

19 avr. 2006, 12:07

Quel est la différence entre ça
while($ress = mysql_fetch_object($result)){
		$arRess[$ress->id_ress ] = array(
								'id'=>$ress->id_ress, 
								'titre'=>$ress->titre_ress, 
								'jpg'=>$ress->img_ress, 
								'pdf'=>$ress->pdf_ress, 
								'eps'=>$ress->eps_ress, 
								'pub_ress'=>$ress->pub_ress);}


///////////////////////

	  $ressList = listCentre();
	 	foreach($ressList as $key=>$val){
et ça mis à part les variable qui changent?
		while($ress_edit = mysql_fetch_object($result)){
		$arRess_edit[$ress_edit->id_ress ] = array(
											'id'=>$ress_edit->id_ress, 
											'titre'=>$ress_edit->titre_ress, 
											'jpg'=>$ress_edit->img_ress, 
											'pdf'=>$ress_edit->pdf_ress, 
											'eps'=>$ress_edit->eps_ress, 
											'pub_ress'=>$ress_edit->pub_ress);
		} 


//////////////////////


  $ress_edit = listEdit();
	foreach($ress_edit as $key=>$val){
Etudiant -- Infographiste Web/Multimédia

Mammouth du PHP | 684 Messages

19 avr. 2006, 12:08

Aller je te donne le coup de petit doigt :)
function listEdit(){
  if(isset($_GET['id_ress'])) {
    echo '<pre>';var_dump($_GET['id_ress']);echo '</pre>';
    $ress_edit = $_GET['id_ress']; // <<<--- ATTENTION a bien echapper ta variable.
    $query = "SELECT * FROM t_ressource WHERE id_ress= '$ress_edit'";
    $result = mysql_query($query) or die(mysql_error());
    while($ress_edit = mysql_fetch_object($result)) {
      $arRess_edit[$ress_edit->id_ress ] = array(
         'id'=>$ress_edit->id_ress,
         'titre'=>$ress_edit->titre_ress,
         'jpg'=>$ress_edit->img_ress,
         'pdf'=>$ress_edit->pdf_ress,
         'eps'=>$ress_edit->eps_ress,
         'pub_ress'=>$ress_edit->pub_ress
       );
    return($arRess_edit); // ICI C'est choquant, non ???
    }     
  }
}
Comme le fait remarque Ryle.
Données en entrée de la fonction : aucun
Données en sortie de la fonction : aucun
Modifié en dernier par zigz4g le 19 avr. 2006, 12:09, modifié 1 fois.
Zigz4g

Eléphanteau du PHP | 26 Messages

19 avr. 2006, 12:08

Données en entrée de la fonction : aucun
Données en sortie de la fonction : aucun
Il n'y a vraiment rien qui te choque ? :)
Si si, j'ai compris que tu me dis que mon bidule truc y marche pas :lol:

Je suis à bout...je vais pleurer, et il me reste encore 4 semaines et demi sur ce projet de merde!!!
Etudiant -- Infographiste Web/Multimédia

Eléphanteau du PHP | 26 Messages

19 avr. 2006, 12:12

Ok...ça marche.

Je pense que je suis surmené...trop de chose à penser, marre de me battre avec un boss qui fait chier sur des conneries et qui ne sais même pas écrire un lien html... :cry:

Encore une fois...comme d'ab...Un GRAND Merci :wink:
Etudiant -- Infographiste Web/Multimédia

Avatar du membre
Modérateur PHPfrance
Modérateur PHPfrance | 10684 Messages

19 avr. 2006, 12:18

return powa' !! ;)