Problème Foreach

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : Problème Foreach

par Ryle » 19 avr. 2006, 12:18

return powa' !! ;)

par freemen » 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:

par freemen » 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!!!

par zigz4g » 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

par freemen » 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){

par Ryle » 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 ? :)

par freemen » 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.

par Ryle » 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 ;)

par zigz4g » 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.

Problème Foreach

par freemen » 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é.