PHP et Sqlserv insert ligne dans une table
Résolu/Fermé
nicolas06100
Messages postés
12
Date d'inscription
lundi 4 mai 2020
Statut
Membre
Dernière intervention
1 juin 2020
-
Modifié le 10 mai 2020 à 17:54
nicolas06100 Messages postés 12 Date d'inscription lundi 4 mai 2020 Statut Membre Dernière intervention 1 juin 2020 - 17 mai 2020 à 17:25
nicolas06100 Messages postés 12 Date d'inscription lundi 4 mai 2020 Statut Membre Dernière intervention 1 juin 2020 - 17 mai 2020 à 17:25
A voir également:
- PHP et Sqlserv insert ligne dans une table
- Table ascii - Guide
- Table des matières word - Guide
- Touche insert - Guide
- Aller à la ligne dans une cellule excel - Guide
- Partager photos en ligne - Guide
6 réponses
jordane45
Messages postés
38325
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
2 décembre 2024
4 711
10 mai 2020 à 17:59
10 mai 2020 à 17:59
Bonjour,
Avant tout ... tu es sûr que c'est du sqlserver ?
Ca ne serait pas plutôt du mysql ? ( car les variables nommées.. il me semblais que ça ne passait pas en sqlserver )
Et si sqlserver.. quelle version ?
Ensuite.. d'où vient ta variable $_SESSION["cnx"] ?
A quels fichiers correspondent chaque script que tu nous montres ??
Lequel correspond, par exemple, au fichier addalbum.php ?
Que contient ton fichier fonctions.php où se trouve, certainement la fonction activer()
Avant tout ... tu es sûr que c'est du sqlserver ?
Ca ne serait pas plutôt du mysql ? ( car les variables nommées.. il me semblais que ça ne passait pas en sqlserver )
Et si sqlserver.. quelle version ?
Ensuite.. d'où vient ta variable $_SESSION["cnx"] ?
A quels fichiers correspondent chaque script que tu nous montres ??
Lequel correspond, par exemple, au fichier addalbum.php ?
Que contient ton fichier fonctions.php où se trouve, certainement la fonction activer()
nicolas06100
Messages postés
12
Date d'inscription
lundi 4 mai 2020
Statut
Membre
Dernière intervention
1 juin 2020
10 mai 2020 à 18:44
10 mai 2020 à 18:44
jordane45
Messages postés
38325
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
2 décembre 2024
4 711
10 mai 2020 à 18:51
10 mai 2020 à 18:51
Je déplace donc ta question au bon endroit.
Par contre, je ne sais toujours pas d'où vient ta variable de session...
Je précise également qu'une requête INSERT ne se fait pas avec un SET ......
ça c'est pour un UPDATE ( même si mysql peut le comprendre.. c'est fortement déconseillé de l'utiliser).
Il faut utiliser la vraie syntaxe sql ...
Et vu que tu fais du PDO, il serait bien
1 - d'activer l'affichage des erreurs PDO
2 - De placer CHAQUE requête dans un bloc TRY/CATCH
3 - Afficher les erreurs PHP
Je t'invite à lire et à appliquer le contenu de ce lien :
https://forums.commentcamarche.net/forum/affich-37584941-php-pdo-gerer-les-erreurs
Ensuite,
Tu nous dis
Hors.. ce script est appelé en AJAX
Déjà, il est préférable de faire du POST au lieu du GET (lorsque l'on fait de l'ajout, modification...)
Ensuite, ton "reload" ne te permet pas de voir les éventuelles erreurs.
Il serait bien, d'ailleurs, de le mettre en commentaire et de regarder dans la console de ton navigateur ce qui s'y passe.
(pour ça, je te conseille d'utiliser FireFox, dont la console est plus simple à utiliser pour débuguer de l'ajax ).
Tu peux éventuellement nous en mettre une capture écran ( pense bien à activer le debugage xhr )
Par contre, je ne sais toujours pas d'où vient ta variable de session...
Je précise également qu'une requête INSERT ne se fait pas avec un SET ......
ça c'est pour un UPDATE ( même si mysql peut le comprendre.. c'est fortement déconseillé de l'utiliser).
Il faut utiliser la vraie syntaxe sql ...
INSERT INTO matable ( champ1 , champ2 ...) VALUES ( "valeur1", "valeur2".. )
Et vu que tu fais du PDO, il serait bien
1 - d'activer l'affichage des erreurs PDO
2 - De placer CHAQUE requête dans un bloc TRY/CATCH
3 - Afficher les erreurs PHP
Je t'invite à lire et à appliquer le contenu de ce lien :
https://forums.commentcamarche.net/forum/affich-37584941-php-pdo-gerer-les-erreurs
Ensuite,
Tu nous dis
le premier script c'est dans addalbum.php
Hors.. ce script est appelé en AJAX
$.get("../serveurs/addalbum.php?t="+titre,function() { location.reload(); });
Déjà, il est préférable de faire du POST au lieu du GET (lorsque l'on fait de l'ajout, modification...)
Ensuite, ton "reload" ne te permet pas de voir les éventuelles erreurs.
Il serait bien, d'ailleurs, de le mettre en commentaire et de regarder dans la console de ton navigateur ce qui s'y passe.
(pour ça, je te conseille d'utiliser FireFox, dont la console est plus simple à utiliser pour débuguer de l'ajax ).
Tu peux éventuellement nous en mettre une capture écran ( pense bien à activer le debugage xhr )
nicolas06100
Messages postés
12
Date d'inscription
lundi 4 mai 2020
Statut
Membre
Dernière intervention
1 juin 2020
Modifié le 10 mai 2020 à 19:55
Modifié le 10 mai 2020 à 19:55
Merci beaucoup je vais voir tout ça, pour fonction.php il contient en ce qui concerne l'album :
j'ai rajouté un include dans le fichier addalbum.php mais sans résultat, je vais voir déjà tout ce que tu m'as dit.
//////////////////// pour album privé function loadpriv($originale,$pid,$albid,$tmax=500) { // $originale = $_FILES['photo']; // $idc = id user dans la table albums // $max = 500 par défaut pour les photos // albid = id de l'album dans la table albums, c'est en même temps le nom du sous dossier // de /images/perso/idc/albid // transformation en .jpg pour simplification $nomphoto=strtolower($originale['name']); $definitive="../images/perso/".$pid."/".$albid."/".$nomphoto; $destination = '../images/upload/'.$nomphoto; move_uploaded_file($originale['tmp_name'], $destination); $extension=strrchr($nomphoto,"."); // création image temporaire switch ($extension) { case ".jpg": case ".jpeg": $image=imagecreatefromjpeg($destination); break; case ".gif": $image=imagecreatefromgif($destination); break; case ".png": $image=imagecreatefrompng($destination); break; } $taille=getimagesize($destination); $largeur=$taille[0]; $hauteur=$taille[1]; if ($largeur < $hauteur) { $nlargeur=round(($largeur*$tmax)/$hauteur); $nhauteur=$tmax; } else { $nhauteur=round(($hauteur*$tmax)/$largeur); $nlargeur=$tmax; } $nouv=imagecreatetruecolor($nlargeur,$nhauteur); imagecopyresampled($nouv,$image,0,0,0,0,$nlargeur,$nhauteur,$largeur,$hauteur); // sauvegarde image jpeg dans emplacement definitif imagejpeg($nouv,$definitive,100); unlink($destination); } function sql2fr($dt) { $dx=explode("-",$dt); $dr=array_reverse($dx); $res=implode("/",$dr); return $res; } function sql3fr($dt) { $dy=explode(" ",$dt); $dx=$dy[0]; return sql2fr($dx); }
j'ai rajouté un include dans le fichier addalbum.php mais sans résultat, je vais voir déjà tout ce que tu m'as dit.
jordane45
Messages postés
38325
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
2 décembre 2024
4 711
10 mai 2020 à 20:14
10 mai 2020 à 20:14
Ta fonction activer($id); .. elle se trouve dans quel fichier ?
Si elle n'est pas dans le fichier fonction.php ... c'est qu'elle se trouve ailleurs... mais tu n'as pas inclus le fichier correspondant.
Si elle n'est pas dans le fichier fonction.php ... c'est qu'elle se trouve ailleurs... mais tu n'as pas inclus le fichier correspondant.
nicolas06100
Messages postés
12
Date d'inscription
lundi 4 mai 2020
Statut
Membre
Dernière intervention
1 juin 2020
10 mai 2020 à 20:20
10 mai 2020 à 20:20
Non elle est sur gphotopriv.php qui appelle la fonction addalbum ()
jordane45
Messages postés
38325
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
2 décembre 2024
4 711
10 mai 2020 à 20:26
10 mai 2020 à 20:26
Sauf que tu appelles addalbum en ajax .... donc les fichier php qui sont chargés dans la fenêtre qui exécute le Javascript ne le sont pas dans le script appelé...
Il faut inclure tous les fichiers nécessaire dans ton fichier addalbum.php
Il faut inclure tous les fichiers nécessaire dans ton fichier addalbum.php
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
nicolas06100
Messages postés
12
Date d'inscription
lundi 4 mai 2020
Statut
Membre
Dernière intervention
1 juin 2020
Modifié le 10 mai 2020 à 21:26
Modifié le 10 mai 2020 à 21:26
effectivement la fonction activer($id) se trouve dans fonction.php
function activer($id) { global $db; $sqlact="update users set connexion=addtime(now(),'0:10:0') where id=:id"; $rqact=$db->prepare($sqlact); $rqact->bindParam(":id",$id); $rqact->execute(); }
jordane45
Messages postés
38325
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
2 décembre 2024
4 711
10 mai 2020 à 20:31
10 mai 2020 à 20:31
Tu ne l'avais pas mis lorsque tu nous as collé le code du fichier tout à l'heure.....
Mais ok.
Donc fais les corrections que je t'ai proposé et regarde la console de ton navigateur.
Reviens nous voir ensuite...
PS : Lorsque tu postes ton code, merci d'indiquer le langage dans les balises afin d'avoir la coloration syntaxique. Ca fait plusieurs fois que je corrige tes messages....
Pour plus d'infos, merci de lire entièrement ce qui est indiqué ici : https://codes-sources.commentcamarche.net/faq/11288-les-balises-de-code
Mais ok.
Donc fais les corrections que je t'ai proposé et regarde la console de ton navigateur.
Reviens nous voir ensuite...
PS : Lorsque tu postes ton code, merci d'indiquer le langage dans les balises afin d'avoir la coloration syntaxique. Ca fait plusieurs fois que je corrige tes messages....
Pour plus d'infos, merci de lire entièrement ce qui est indiqué ici : https://codes-sources.commentcamarche.net/faq/11288-les-balises-de-code
nicolas06100
Messages postés
12
Date d'inscription
lundi 4 mai 2020
Statut
Membre
Dernière intervention
1 juin 2020
>
jordane45
Messages postés
38325
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
2 décembre 2024
17 mai 2020 à 17:25
17 mai 2020 à 17:25
Bonjour,
finalement le problème est résolu et c'était tout simple.
n'avait rien à faire dans le fichier addalbum.php
Finalement c'est juste :
Il n'y avait aucune erreur détectée, je me suis focalisé sur :
finalement le problème est résolu et c'était tout simple.
autorisation=0";
n'avait rien à faire dans le fichier addalbum.php
Finalement c'est juste :
$sql="insert into albums set idc=:cnx, titre=:t"; $rq=$db->prepare($sql); $rq->bindParam(":cnx",$idc); $rq->bindParam(":t",$titre); $rq->execute(); $albid=$db-> lastInsertId();
Il n'y avait aucune erreur détectée, je me suis focalisé sur :
lastInsertId()où j'ai cru comprendre que ce n'était compatible que par Sql Serveur et pas ou plus sur Mysql, mais finalement c'est bon.
nicolas06100
Messages postés
12
Date d'inscription
lundi 4 mai 2020
Statut
Membre
Dernière intervention
1 juin 2020
10 mai 2020 à 21:03
10 mai 2020 à 21:03
Ok Merci beaucoup , j'suis nouveau sur le site j’apprends sur le tas, jviens de voir pour le langage jvais voir pour les corrections, concernant la console elle ne semble pas détecter d'erreur mais bon j'vais lire tout ce que tu m'as indiqué et appliquer tout ce que tu m'as dit puis je reviendrais. A l'époque cette page fonctionné correctement c'est ça que je trouve bizarre.