Ajout de ligne sur une DB depuis php ?
kirel
-
jordane45 Messages postés 38486 Date d'inscription Statut Modérateur Dernière intervention -
jordane45 Messages postés 38486 Date d'inscription Statut Modérateur Dernière intervention -
Bonjour,
Voilà je suis un débutant en php et actuellement j'essaye de faire quelques petits exercice lambda; Malheureusement je suis bloqué..
Pour vous résumé, je tente d'ajouter une nouvelle ligne dans cette table avec des codes prient dans d'autre table:
https://www.noelshack.com/2017-09-1488444640-capture.png
et cela grâce à ces fonctions:
(page "EQnouvelle.php")
(page traitementdirecteur.php)
[]
Call Stack
# Time Memory Function Location
1 0.0010 138104 {main}( ) ..\EQnouvelle.php:0
2 0.0390 171792 newequip( ) ..\EQnouvelle.php:80
Voilà je suis un débutant en php et actuellement j'essaye de faire quelques petits exercice lambda; Malheureusement je suis bloqué..
Pour vous résumé, je tente d'ajouter une nouvelle ligne dans cette table avec des codes prient dans d'autre table:
https://www.noelshack.com/2017-09-1488444640-capture.png
et cela grâce à ces fonctions:
(page "EQnouvelle.php")
<form> Nom de l'entraineur: <input type=text name="nameE"></input><br> Catégorie de l'équipe: <input type=text name="categorieE"></input><br> Nom du club de l'équipe: <input type=text name="nameC"></input><br> <input type=submit value=Créer></input><br> </form> <?php $nameE=$_GET['nameE']; $categorieE=$_GET['categorieE']; $nameC=$_GET['nameC']; $nameE=codeavecnomE($nameE); {} $categorieE=codeavecnomC($categorieE); {} $nameC=codeavecnomCl($nameC); {} $newteam=newequip($nameE, $categorieE, $nameC); {} ?>
(page traitementdirecteur.php)
<?php function codeavecnomE($nameE) { $result = connexion(); $requete ="select code from administre where nom = '".$nameE."';"; $resultat = mysqli_query($result,$requete); return ($resultat); } Function codeavecnomC($categorieE) { $result = connexion(); $requete ="select code from categorie where libelle = '".$categorieE."';"; $resultat = mysqli_query($result,$requete); return ($resultat); } Function codeavecnomCl($nameC) { $result = connexion(); $requete ="select code from club where libelle = '".$nameC."';"; $resultat = mysqli_query($result,$requete); return ($resultat); } function newequip($nameE, $categorieE, $nameC) { $result=connexion(); $requete="insert into equipe values(26,".$nameE.",".$categorieE.",".$nameC.")"; $resultat = mysqli_query($result,$requete); return ($resultat); } ?>
[]
EDIT : Ajout du LANGAGE dans les balises de code pour avoir la coloration syntaxique !
et il me marque cette erreur: ) Catchable fatal error: Object of class mysqli_result could not be converted to string in C:\wamp\www\SIG - chalot\traitementDirecteur.php on line 29Call Stack
# Time Memory Function Location
1 0.0010 138104 {main}( ) ..\EQnouvelle.php:0
2 0.0390 171792 newequip( ) ..\EQnouvelle.php:80
A voir également:
- Ajout de ligne sur une DB depuis php ?
- Partage de photos en ligne - Guide
- Mètre en ligne - Guide
- Ajout rapide snap - Forum Snapchat
- En ligne sur messenger alors que non ✓ - Forum Facebook
- Formulaire en ligne de meta - Guide
2 réponses
Bonjour,
A quoi correspond la ligne 29 du fichier :
Ensuite... attention avec ton INSERT.
Je suppose que tu as un ID auto-incrementé .. donc tu ne dois pas spécifier le "26".
Et pour les autres champs.. si c'est du texte .. il faut les mettre entre quotes.
Pour finir.. il est conseillé de spécifier les champs dans lesquels tu fais l'insert.
par exemple :
En gros :
Je te conseille également de passer par du POST au lieu du GET.
Il faudrait aussi récupérer PROPREMENT les variables AVANT de les utiliser. (comme fait ici avec l'écriture ternaire :https://forums.commentcamarche.net/forum/affich-37636387-php-notice-undefined-index )
A quoi correspond la ligne 29 du fichier :
Ensuite... attention avec ton INSERT.
Je suppose que tu as un ID auto-incrementé .. donc tu ne dois pas spécifier le "26".
Et pour les autres champs.. si c'est du texte .. il faut les mettre entre quotes.
Pour finir.. il est conseillé de spécifier les champs dans lesquels tu fais l'insert.
par exemple :
INSERT INTO tatable (champ1,champ2) VALUES ('unevaleur', 'autrechose')
En gros :
$requete="INSERT INTO equipe (equipe ,categorie,club ) VALUES('".$nameE."','".$categorieE."','".$nameC."')";
Je te conseille également de passer par du POST au lieu du GET.
Il faudrait aussi récupérer PROPREMENT les variables AVANT de les utiliser. (comme fait ici avec l'écriture ternaire :https://forums.commentcamarche.net/forum/affich-37636387-php-notice-undefined-index )
Bonjour, déjà merci de ta réponse,
la ligne 29:
J'ai ensuite fais les modifications comme tu me l'a conseillé mais la même erreur apparait toujours..
http://image.noelshack.com/fichiers/2017/09/1488537288-capture.png
(traitementdirecteur.php)
EQnouvelle.php
[]
la ligne 29:
$requete="insert into equipe values(26,".$nameE.",".$categorieE.",".$nameC.")";
J'ai ensuite fais les modifications comme tu me l'a conseillé mais la même erreur apparait toujours..
http://image.noelshack.com/fichiers/2017/09/1488537288-capture.png
(traitementdirecteur.php)
<?php function codeavecnomE($nameE) { $result = connexion(); $requete ="select code from administre where nom = '".$nameE."';"; $resultat = mysqli_query($result,$requete); return ($resultat); } Function codeavecnomC($categorieE) { $result = connexion(); $requete ="select code from categorie where libelle = '".$categorieE."';"; $resultat = mysqli_query($result,$requete); return ($resultat); } Function codeavecnomCl($nameC) { $result = connexion(); $requete ="select code from club where libelle = '".$nameC."';"; $resultat = mysqli_query($result,$requete); return ($resultat); } function newequip($nameE, $categorieE, $nameC) { $result=connexion(); $requete="INSERT INTO equipe (equipe ,categorie,club ) VALUES('".$nameE."','".$categorieE."','".$nameC."')"; //$requete="insert into equipe (equipe ,categorie,club) values(".$nameE.",".$categorieE.",".$nameC.")"; $resultat = mysqli_query($result,$requete); return ($resultat); } ?>
EQnouvelle.php
<?php //$nameE=$_POST['nameE']; //$categorieE=$_POST['categorieE']; //$nameC=$_POST['nameC']; $nameE = !empty($_POST['nameE']) ? $_POST['nameE'] : NULL; $categorieE = !empty($_POST['categorieE']) ? $_POST['categorieE'] : NULL; $nameC = !empty($_POST['nameC']) ? $_POST['nameC'] : NULL; $nameE=codeavecnomE($nameE); {} $categorieE=codeavecnomC($categorieE); {} $nameC=codeavecnomCl($nameC); {} $newteam=newequip($nameE, $categorieE, $nameC); {} ?>
[]
EDIT : Ajout du LANGAGE dans les balises de code
Dans tes fonctions tu fais :
Sauf que pour que le résultat soit "utilisable" ... tu dois en faire un FETCH
https://www.php.net/manual/fr/mysqli-result.fetch-assoc.php
$resultat = mysqli_query($result,$requete); return ($resultat);
Sauf que pour que le résultat soit "utilisable" ... tu dois en faire un FETCH
https://www.php.net/manual/fr/mysqli-result.fetch-assoc.php