Se connecter avec
S'enregistrer | Connectez-vous

Verifier ce qui suit une variable php

Dernière réponse : dans Programmation

Bonjour,
Est-il possible de vérifier si une variable est suivie d'un retour a la ligne, car j'essaie d'enregistrer dans une base de donnée plusieur produit a la fois. Voila mon code:

  1. $ligne = ($_POST['champs']);
  2. while ("</br>")
  3. {
  4. $champs = explode(":", $ligne);
  5.  
  6. if (isset($_POST['champs']) and $_POST['champs'] != '')
  7. {
  8.  
  9. //Voir si le produit existe déjà
  10. $sql1 = mysql_query("SELECT id_prod FROM produits WHERE id_imgS = '".$champs[5]."'");
  11. if(mysql_fetch_row($sql1)!=NULL)
  12. {
  13. echo "Ce produits existe déjà, vérifié l'id de l'image du produit à inserer.</p>";
  14. echo"<input type=button value=\" Retour \" onclick=\"history.back()\">";
  15. }else{
  16. //Insertion ds la base
  17. $sq2 = mysql_query("INSERT INTO produits VALUES ('', '".$champs[0]."', '".$champs[1]."', '".$champs[2]."', '".$champs[3]."', '".$champs[4]."', '".$champs[5]."', '".$champs[6]."')")or die(mysql_error());
  18. echo "Félicitation, le produit a bien été ajouté à la base.</p>";
  19. echo"<input type=button value=\" Retour \" onclick=\"history.back()\">";
  20. }
  21.  
  22. }
  23. else
  24. {
  25. echo "Veuillez remplir le champs</p>";
  26. echo"<input type=button value=\" Retour \" onclick=\"history.back()\">";
  27. }
  28. }




Pour inserer 1 produit dans la base c'est bon mais dès que je retourne a la ligne pour en inserer un autre, sa bug.

Merci d'avance pour votre reponse

Autres pages sur : verifier suit variable php

Lassé par la pub ? Créez un compte

Ce que je ne comprends pas dans ton code c'est
Citation :
produits VALUES ('', '".$champs[0]."', '".$champs[1]."', '".$champs[2]."', '".$champs[3]."', '".$champs[4]."', '".$champs[5]."', '".$champs[6]."')" )or die(mysql_error());

de simple guillement sans les '.' suffise :
Citation :
produits VALUES ('', '$champs[0]', '$champs[1]', '$champs[2]', '$champs[3]', '$champs[4]', '$champs[5]', '$champs[6]')" )or die(mysql_error());


ps : pour le problème en lui même jene vois pas trop ce que tu veux dire

Merci pour ta réponse. En ce qui concerne les guillemet, j'ai vu cette syntaxe sur internet, et je viens de tester que les guillemet et sa marche merci.
Pour mon problème, je souhaiterai insérer les produit dans la base de donnée grâce a un textarea. L'utilité de ceci est de pouvoir inserer plusieurs produit en même temps. ex:
id_prod, type, prix (et en retournant a la ligne, on insere un autre produit)
id_prod, type, prix
id_prod, type, prix
...

J'espère avoir été un peu plus clair :) 

le texte area est une mauvaise idee car il faut definir sa taille , dire que tel ou tel ligne c'est pour tel ou tel champ etc ... et le lire ce qui constitue une boucle supplementaire etc ... enfin tres compliqué !

ce que je te conseil c'est un truc du genre :
un form avec 3 champs => id , type , prix et 3 bouton a la fin.
le premier avec enregistrer/ inserer nouveau : il enregistre les donnée que tu as mis dans le form ds ta bdd et renouvelle la page pour inserer d'autres données
le deuxieme avec enregistrer/ retour au menu : i lenregistre et retourne au menu ou a ton truc précédent ( ca dépend du href que tu met :p  )
le troisieme avec annuler/ retour au menu ( renvoi le mec au menu par exemple ou au truc précédent ( petit racourci ) )

Je vois ce que tu veux dire mais la je suis en stage de 1ere année de BTS et on me demande justement de pouvoir insérer en masse, comme sa ils pourront insérer dans la base 10 équipement d'un coup par exemple.
J'ai utilisé le textarea mais je pensée peut-être le faire avec un formulaire qui contenait plusieurs ligne. Ainsi dans chaque ligne, on pouvait avoir l'ID, le type...

pour voir l'id il faut mettre le formulaire en GET et pas POST si mes souvenirs sont bons ( ou l'inverse si mes souvenirs sont pas bons ). Maintenant moi j'ai pu vu en détail cette année ( ma premiere année de bts IG option reseau ) pour un textarea juste le theorique ( meme pas vu le pratique d utout ^^ ).

eh ben bon courage cher collègue moi aussi je fais BTS IG option réseau :D .
C'est bon j'ai trouver regarde le code:

  1. $ligne = explode ("\n",$_POST['champs']);
  2.  
  3. $i = 0;
  4. while ($ligne[$i])
  5. {
  6. $champs = explode (":",$ligne[$i]);
  7. // Insertion des donnée tant que le $ligne est respecté
  8. // C'est la que je met mon code de INSERT INTO
  9. $i++;
  10. }
  11. echo"<input type=button value=\"Retour\" onclick=\"history.back()\">";


En fait, j'explose le textarea pour avoir plusieurs lignes. Je met ceci dans une boucle pour qu'à chaque fois qu'il y ai un retour à la ligne le traitement ce fasse.
Ensuite j'explose chaque ligne pour séparer les variable par ":"
Si ta pas compris je ré-expliquerai :) .

ps: Allez, plus que 3 semaines à tirer :p 
Lassé par la pub ? Créez un compte
Tom's guide dans le monde