Recherche bdd et mise a jour dans la table

Jarod1980 Messages postés 273 Date d'inscription samedi 5 juillet 2003 Statut Membre Dernière intervention 31 mars 2015 - 30 oct. 2009 à 13:53
Jarod1980 Messages postés 273 Date d'inscription samedi 5 juillet 2003 Statut Membre Dernière intervention 31 mars 2015 - 30 oct. 2009 à 14:56
Bonjour,

Je suis en train de mettre en place une petite application permettant de rechercher une personne dans ma base de données. Une fois la personne trouvée j'affiche les différents champs associés à la recherche de la personne dans des input type= "text" avec un bouton ajouter pour insérer des nouvelles données.
Ma table a la structure suivante :
riders (id, nom, prenom, sexe, age, ville, club, parcours, annee) .
J'ai fais une page formulaire html et deux fichiers php : cible2.php qui réceptionne les posts et add.php qui est censé insérer les données contenues dans les input type = "text" dans ma table riders.

En fait, mes différents problèmes sont les suivants :
J'arrive à récupérer et à afficher dans cible2.php les données associées à un nom et prénom présent dans ma base, par contre, si le nom et le prénom n'existe pas je n'arrive pas à afficher un message du style pas de résultats. Deuxième soucis, si je souhaite insérer dans ma base le retour du résultat avec des modifications sur les champs ça ne marche pas non plus.

Je vous mets mes sources ci-dessous qui je pense seront bien plus explicites.

Source search.html :
<form method = "post" action= "cible2.php">


Recherche de riders dans la BDD:


Nom :
 


Prénom :
 



</form>


Source de cible2.php :
$con   = mysql_connect('localhost', 'root', '');

if (!$con)
  {
  die('Could not connect: ' . mysql_error());
  }
   
  $name =  $_POST['nom']; 
  $firstname = $_POST['prenom'];
  mysql_select_db("mabdd", $con);  

  $sql="SELECT  * FROM riders where nom = '".$name."' and prenom = '".$firstname."' ";
  $result = mysql_query($sql);
  $nb_resultats = mysql_num_rows($result);
  
if($nb_resultats !=0) {
  while($row = mysql_fetch_array($result))
  {
   ?>
   
   <form method="POST" action= "add.php">
   
  
Nom : " />

Prenom : " /> 
sexe :" /> 

Age : " /> 

Ville :" /> 

Club :" /> 

Parcours : " /> 

Année : " /> 




  <?php
   } 
}
else
{ 
?>
Pas de résultats

<?php
}
mysql_close($con);
?>

</html>


Source de add.php :
<?php
// On commence par récupérer les champs
if(isset($_POST['nom']))      $nom  =$_POST[$row['nom']];
else      $nom="";

if(isset($_POST['prenom']))      $prenom=$_POST[$row['prenom']];
else      $prenom="";

if(isset($_POST['sexe']))      $email=$_POST[$row['sexe']];
else      $sexe="";

if(isset($_POST['age']))      $icq=$_POST[$row['age']];
else      $age="";

if(isset($_POST['ville']))      $titre=$_POST[$row['ville']];
else      $ville="";

if(isset($_POST['club']))      $url=$_POST[$row['club']];
else      $club="";

if(isset($_POST['parcours']))      $url=$_POST[$row['parcours']];
else      $parcours="";

if(isset($_POST['annee']))      $url=$_POST[$row['annee']];
else      $annee="";
// connexion à la base
$db = mysql_connect('localhost', 'root', '')  or die('Erreur de connexion '.mysql_error());
// sélection de la base  

    mysql_select_db('mabdd',$db)  or die('Erreur de selection '.mysql_error());
    
    // on écrit la requête sql
    $sqll = "INSERT INTO riders(id, nom, prenom,sexe, age, ville, club, parcours, annee) VALUES('','$nom','$prenom','$sexe','$age','$ville','$club', $parcours, $annee)";
    
    // on insère les informations du formulaire dans la table
    mysql_query($sqll) or die('Erreur SQL !'.$sqll.'
'.mysql_error());

    // on affiche le résultat pour le visiteur
    echo 'Vos infos on été ajoutées.';

    mysql_close();  // on ferme la connexion
?> 


Si quelqu'un aurait une idée, je suis preneur.
Merci.
@+
Jarod_Delaware

1 réponse

Jarod1980 Messages postés 273 Date d'inscription samedi 5 juillet 2003 Statut Membre Dernière intervention 31 mars 2015 2
30 oct. 2009 à 14:56
Salut,

Je suis arrivé à corriger partiellement mon problème, enfin du moins l'insertion dans ma base de données. J'avais mis pas le bon nom des variables à récupérer et j'avais oublié les ' ' dans la requête sql.
Par contre, quand j'insère j'ai une erreur qui m'apparaît :
" Apache HTTP Server a rencontré un problème et doit fermer. Nous vous prions de nous excuser pour le désagrément encouru. " mais il m'insère tout de même les données dans ma table. De quoi celà peut-il venir ?

En ce qui concerne mon problème d'affichage pas de résultats, apparemment ma boucle :
$nb_resultats = mysql_num_rows($result);
  
if($nb_resultats !=0) {
...
else { ... } 


à l'air de fonctionner maintenant .


Jarod_Delaware
0
Rejoignez-nous