Problème d'ajout en php

Bonjour,

Voici l'erreur que ça m'affiche :

Warning: Variable passed to each() is not an array or object in C:\Users\Guillaume\Desktop\xampp\htdocs\adresse\ajout.php on line 16

Warning: mysql_close() expects parameter 1 to be resource, null given in C:\Users\Guillaume\Desktop\xampp\htdocs\adresse\ajout.php on line 51

et voici le code source :

<?php
include("config.inc.php");
?>
<html>
<title>Ajout d'un enregistrement</title>
<body>
<?php

/* _________________RECUP_DES_DONNEES____________________ */

while (list($var, $value) = each($HTTP_GET_VARS))
{
$tab_asso["$var"] = $value;
}


/* ____________________FORMULAIRE________________________ */

switch ($tab_asso[ok]) {

/* ____ENREGISTREMENT_____ */
case 1;
$requete=mysql_query("insert into carnet values('','$nom','$prenom','$adresse1','$adresse2','$cpostal','$ville','$tel','$fax','$email')");
echo "<p align=center><h1 align=center>Enregistrement réussi.<br><br><a href='carnet.php'>Retour</a></p>";
break;

/* ______AFFICHAGE DU FORMULAIRE____ */
default;
echo "<blockquote><table border=0><form method='get' action='ajout.php'><input type='hidden' name=ok value=1>
<td>Nom</td><td><input type='text' name=nom size=30 maxlenght=50></td>
<td align=right>Prénom</td><td><input type='text' name=prenom size=30 maxlenght=50></td><tr>
<td>Adresse</td><td><input type='text' name=adresse1 size=30 maxlenght=60></td>
<td align=right>Adresse (complément)</td><td><input type='text' name=adresse2 size=30 maxlenght=60></td><tr>
<td>Code postal</td><td><input type='text' name=cpostal size=30 maxlenght=5></td>
<td align=right>Ville</td><td><input type='text' name=ville size=30 maxlenght=30></td><tr>
<td>Téléphone</td><td><input type='text' name=tel size=30 maxlenght=15></td>
<td align=right>Fax</td><td><input type='text' name=fax size=30 maxlenght=15></td><tr>
<td>E-mail</td><td><input type='text' name=email size=30 maxlenght=30></td><tr>
</table></blockquote>";
echo "<table align=center><tr><td><input type='submit' value='Ajouter'></td><td><input type='reset' value='Tout effacer'></td></form><td><form method=get action='carnet.php'><input type=submit value='Annuler'></td></form></table>";
break;
}

MYSQL_CLOSE($db_link);
?>
</body>
</html>

j'ai besoin d'aide svp c'est important

Mercii

8 réponses

  1. Bonjour,

    Je ne connait pas trop la fonction each() mais apparament, elle requiere un tableau ou objet en parametre.. A mon avis ya un changement de variables à faire.
    0
    1. c'est à dire je débute en php donc c'est dure dure.
      0
      1. Bah déja pour ton while , si tu veux comparer, faudrai remplacer sa :

        while (list($var, $value) = each($HTTP_GET_VARS))

        par sa :

        while (list($var, $value) == each($HTTP_GET_VARS))

        Sinon sa compare rien du tout !
        0
        1. c quoi ta variable $http_get_vars ?
          0
      2. voici l'erreur après le changement "=="

        Parse error: syntax error, unexpected T_IS_EQUAL, expecting '=' in C:\Users\Guillaume\Desktop\xampp\htdocs\adresse\ajout.php on line 13
        0
        1. j'ai résolu le problème
          avec each en remplaçant each($HTTP_GET_VARS)) par each($_POST))

          il me reste cette erreur désormais :

          Warning: mysql_close() expects parameter 1 to be resource, null given in C:\Users\Guillaume\Desktop\xampp\htdocs\adresse\ajout.php on line 48
          0
          1. Tu l'a bien parametré ton $db_link ?
            genre

            $db_link = mysql_connect($myServer, $myUser, $myPass)
            or die("Connexion impossible sur le serveur $myServer");
            0
            1. effectivement ça venait de là problème résolu maintenant j'ai un autre problème dans la page carnet.php :

              Warning: mysql_num_rows() expects parameter 1 to be resource, boolean given in C:\Users\Guillaume\Desktop\xampp\htdocs\adresse\carnet.php on line 17

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

              <?php
              include("config.inc.php");
              ?>
              <html>
              <title>Carnet d'adresse</title>
              <body bgcolor="#FFFFFF">
              <h1 align=center>Carnet d'adresse</h1><br>

              <?php

              /*___________________AFFICHAGE_DES_ENREGISTREMENTS_____________________ */

              $result = MYSQL_QUERY("select * from carnet order by nom");
              $number = MYSQL_NUM_ROWS($result);
              echo "<p align=center>$number enregistrements.</p><br>";
              $i=0;
              echo "<table border=1 align=center><tr><th>Nom</th><th>Prénom</th><th>Adresse</th><th>Code Postal</th><th>Ville</th><th>Téléphone</th><th>Fax</th><th>E-mail</th><th colspan=2>Opérations</th></tr>";

              while ($i<$number) {
              $id=mysql_result($result,$i,"id");
              $nom=mysql_result($result,$i,"nom"); if ($nom=="") {$nom="-";}
              $prenom=mysql_result($result,$i,"prenom"); if ($prenom=="") {$prenom="-";}
              $adresse1=mysql_result($result,$i,"adresse1");
              $adresse2=mysql_result($result,$i,"adresse2");if (($adresse2=="")&&($adresse1=="")) {$adresse1="-";}
              $cpostal=mysql_result($result,$i,"cpostal");if ($cpostal=="") {$cpostal="-";}
              $ville=mysql_result($result,$i,"ville");if ($ville=="") {$ville="-";}
              $tel=mysql_result($result,$i,"tel");if ($tel=="") {$tel="-";}
              $fax=mysql_result($result,$i,"fax");if ($fax=="") {$fax="-";}
              $email=mysql_result($result,$i,"email");if ($email=="") {$email="-";}

              echo "<tr><td align=center><b>$nom</b></td><td align=center>$prenom</td><td align=center>$adresse1";
              echo "<br>$adresse2</td><td align=center>$cpostal</td><td align=center>$ville</td><td align=center>$tel</td><td align=center>$fax</td><td align=center>$email</td><td><a href='modif.php?id=$id'>Modifier</a></td><td><a href='effacer.php?eff=$id'>Effacer</a></td></tr>";
              $i++;
              }
              echo "</table>";

              /* _________________________MENU____________________________ */

              echo "<br><br><br><a href='ajout.php'><p align=center>Ajouter un enregistrement</p></a>";

              MYSQL_CLOSE();
              ?>

              </body>
              </html>
              0
              1. Et bien la syntaxe a l'aire correct, c'est peut être dans la base de donnée qu'il y a un pb , sinon moi pour aficher le nre de ligne totale s'une table je fait :

                $lignes=0;
                $lignes=mysql_query("SELECT COUNT(*) as NBR FROM ta_table");
                $row=mysql_fetch_object($lignes);
                $total=$row->NBR;

                echo $total.'enregistrement';
                0