Aide dans php mysql
Fermé
eliah
-
13 avril 2005 à 09:50
beeboo Messages postés 27 Date d'inscription dimanche 17 avril 2005 Statut Membre Dernière intervention 9 mai 2005 - 18 avril 2005 à 16:43
beeboo Messages postés 27 Date d'inscription dimanche 17 avril 2005 Statut Membre Dernière intervention 9 mai 2005 - 18 avril 2005 à 16:43
A voir également:
- Aide dans php mysql
- Easy php - Télécharger - Divers Web & Internet
- Mysql community server - Télécharger - Bases de données
- Get_magic_quotes_gpc php 8 ✓ - Forum PHP
- Error 2002 (hy000): can't connect to local mysql server through socket '/var/lib/mysql/mysql.sock' (2) ✓ - Forum Linux / Unix
- Mysql gratuit ou payant - Forum MySQL
8 réponses
kij_82
Messages postés
4089
Date d'inscription
jeudi 7 avril 2005
Statut
Contributeur
Dernière intervention
30 septembre 2013
857
13 avril 2005 à 10:19
13 avril 2005 à 10:19
Dans un premier temp, adns l'expression :
if ($action == "visualiser" && $num_enr != '');{
$requete = "select * from $objet";
require_once("cadre_formulaire.cgi");
}
il te faut oter le ';' de 'if($action == "visualiser" && $num_enr!='');{
Ensuite tu oublie de fermer une accolade à la fin (ou alors tu l'a oubliée dans le message.
Ensuite, ben ... je sais pas à quoi correspond tes $action donc... (est ce le nom d'un bouton submit ou un truc dans le genre, est-ce que tu initialise bien tes valeurs de $action, etc..
esce de l'html ? ou autre ?
if ($action == "visualiser" && $num_enr != '');{
$requete = "select * from $objet";
require_once("cadre_formulaire.cgi");
}
il te faut oter le ';' de 'if($action == "visualiser" && $num_enr!='');{
Ensuite tu oublie de fermer une accolade à la fin (ou alors tu l'a oubliée dans le message.
Ensuite, ben ... je sais pas à quoi correspond tes $action donc... (est ce le nom d'un bouton submit ou un truc dans le genre, est-ce que tu initialise bien tes valeurs de $action, etc..
esce de l'html ? ou autre ?
Ce qui serait bien c'est que tu mette l'endroit où tu récupères les valeurs de tes cases à cocher pcq, là, honnêtement, j'arrive pas à lire ton code.
kij_82
Messages postés
4089
Date d'inscription
jeudi 7 avril 2005
Statut
Contributeur
Dernière intervention
30 septembre 2013
857
14 avril 2005 à 23:45
14 avril 2005 à 23:45
Moi j'ai bien peur qu'il ne les prend pas ses valeurs ::
T'aurais pas un truc du genre qqpart dans ton code Eliah ?:
if(isset($_POST['action']))
$action = $_POST['action'];
else
$action = "";
Parce que la je crois pas que tu récupère quoi que ce soit de tes formulaires par la méthodes POST.
Et puis ya pas de :
echo "<FORM action=\"truc.php\" method=\"POST\">
...
echo "</FORM>";
ou alors g pas vu !
++
T'aurais pas un truc du genre qqpart dans ton code Eliah ?:
if(isset($_POST['action']))
$action = $_POST['action'];
else
$action = "";
Parce que la je crois pas que tu récupère quoi que ce soit de tes formulaires par la méthodes POST.
Et puis ya pas de :
echo "<FORM action=\"truc.php\" method=\"POST\">
...
echo "</FORM>";
ou alors g pas vu !
++
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
Je viens de voir dans ta fonction case_cocher() un truc qui me fait tiquer :
Tu utilises $cle, $valeur comme pour tous les autres champs mais dans les checkbox et les radio, la valeur ne représente pas le contenu de la case mais son libellé. Il faut un troisième paramètre checked qui dit si la case est cochée ou non.
exemple : <input name="case" type="checkbox" value="Cochez cette boite">
Donc si ton champ $valeur contient bien l'état de la boîte, tu dois plutôt ecrire un truc du genre :
function case_cocher($requete, $nom_case, $defaut){ global $host_bd_sapa, $login_bd_sapa, $pass_bd_sapa, $nom_bd_sapa; $connection = ouvrir_db($host_bd_sapa, $login_bd_sapa, $pass_bd_sapa, $nom_bd_sapa); $result = mysql_query($requete); if ($result == 0){ $resultat = 'Impossible d\'effectuer cette requete '.$requete; } else{ if (mysql_num_rows($result)==0){ $resultat = 'Aucune donnée ne correspond à votre requête'; } else{ while($ligne=mysql_fetch_row($result)){ while (list($cle,$valeur) = each($ligne)){ $resultat .= '<input type="checkbox" name="'.$cle.'" VALUE="'.$valeur.'">'.$valeur.'<br>'; } } } } fermer_db($connection); return $resultat; }
Tu utilises $cle, $valeur comme pour tous les autres champs mais dans les checkbox et les radio, la valeur ne représente pas le contenu de la case mais son libellé. Il faut un troisième paramètre checked qui dit si la case est cochée ou non.
exemple : <input name="case" type="checkbox" value="Cochez cette boite">
Donc si ton champ $valeur contient bien l'état de la boîte, tu dois plutôt ecrire un truc du genre :
$check = ($valeur == 'on')? "checked" : ""; $resultat .= '<input type="checkbox" name="'.$cle.'" VALUE="'.$cle.'" '.$check.'><br>';
j'ai fait des echo:$cle et $valeur au niveau de la fonction traitement_form qui permet de récuperer les valeurs et $valeur ne contient rien.
Pour ce qui est du POST j'ai une ligne de code dans un fichier (celui ci permet la navigation entre les formulaires):
echo '<form method="post" action="'.$PHP_SELF.'" name="fiche">'."\n";
require_once("truc/formulaires/$form.cgi");
Sinon j'ai pas vu dans mon code le if(isset($POST....)
Mais ce que je comprend pas c que c un formulaire que j'ai repris et que celui ci fonctionne (j'arrive a rajouter des valeurs dans la base par son intermédiaire).Mais les deux champs que j'ai rajouter eux ne marchent pas pourtant le code est identique (probablement que non puisque ca marche pas mais bon.....)
Pour ce qui est du POST j'ai une ligne de code dans un fichier (celui ci permet la navigation entre les formulaires):
echo '<form method="post" action="'.$PHP_SELF.'" name="fiche">'."\n";
require_once("truc/formulaires/$form.cgi");
Sinon j'ai pas vu dans mon code le if(isset($POST....)
Mais ce que je comprend pas c que c un formulaire que j'ai repris et que celui ci fonctionne (j'arrive a rajouter des valeurs dans la base par son intermédiaire).Mais les deux champs que j'ai rajouter eux ne marchent pas pourtant le code est identique (probablement que non puisque ca marche pas mais bon.....)
Si quelqu'un peut s'interesser a mon probleme ce serait sympa car ce truc je dois l'avoir fini mercredi et je vois pas comment faire pour que ca marche.......
beeboo
Messages postés
27
Date d'inscription
dimanche 17 avril 2005
Statut
Membre
Dernière intervention
9 mai 2005
8
18 avril 2005 à 16:43
18 avril 2005 à 16:43
Je réitère ce que j'ai dit, les champs de type checkbox ne se traitent pas de la même manière que les autres. Donc vérifie bien le traitement de l'attribut checked tant dans l'écriture de la BD que dans sa lecture. Vérifie ce que contiennent les champs cle et valeur dans la BD, si valeur contient autre chose que on ou off, c'est que cela coince autant dans l'écriture que dans la lecture du statut de la boîte.
13 avril 2005 à 10:33
celle ci est codé en html et php.
13 avril 2005 à 11:29
Du genre :
<?php
if(isset($_POST['action']))
$action = $_POST['action'];
else
$action = "";
?>
Tu peux me mettre ton code entier pour que je vois mieux l'ensemble de ce que tu as fait, merci
++
13 avril 2005 à 15:38
dans mon fichier formulaire:
<td><br><b>Sélectionner un primer : </b><br></td></tr>
<tr><td>
<?if ($action == 'visualiser'){
//$pos_enr = champ2num("primers", 0, $ligne[3]);
echo $ligne[3];
}else{
$mende = case_cocher("select Nom_Primer from primers ORDER BY Nom_Primer", "Nom_Primer", $ligne[3]);
echo $mende;
}?></td></tr>
Dans mon fichier fonction (je te met que les bouts de code qui concernent ce truc:
function case_cocher($requete, $nom_case, $defaut){
global $host_bd_sapa, $login_bd_sapa, $pass_bd_sapa, $nom_bd_sapa;
$connection = ouvrir_db($host_bd_sapa, $login_bd_sapa, $pass_bd_sapa, $nom_bd_sapa);
$result = mysql_query($requete);
if ($result == 0){
$resultat = 'Impossible d\'effectuer cette requete '.$requete;
}else{
if (mysql_num_rows($result)==0){
$resultat = 'Aucune donnée ne correspond à votre requête';
}else{
while($ligne=mysql_fetch_row($result)){
while (list($cle,$valeur) = each($ligne)){
$resultat .= '<input type="checkbox" name="'.$cle.'" VALUE="'.$valeur.'">'.$valeur.'<br>';
}}}}
fermer_db($connection);
return $resultat;
}?>
//traitement_form() traite de maniere automatique tous les évenements d'un formulaire a savoir la visualisation,
//La modification, l'ajout ou encore la suppresion de page
function traitement_form($champs, $primaire, $objet, $action, $status, $num_enr){
list($cle_primaire, $valeur_primaire) = each($primaire);
$form = $objet;
$mode = "formulaire";
if ($action == 'ajouter' || ($action == 'visualiser' && $num_enr == '')){
if ($status == "ok"){
$debut_requete = "INSERT INTO $objet (";
$fin_requete = ") VALUES(";
while(list($cle,$valeur)=each($champs)){
//echo "$cle $valeur<br>";
$debut_requete .= "$cle, ";
$fin_requete .= "'$valeur', ";
}
$requete = substr($debut_requete, 0, strlen($debut_requete)-2).substr($fin_requete, 0, strlen($fin_requete)-2).")";
action_simple($requete);
$action = "visualiser";
}
else{
if ($action == 'visualiser' && $num_enr == '')
$action = 'ajouter';
$requete = "select * from $objet";
require_once("cadre_formulaire.cgi");
}}
if ($action == 'modifier'){
if ($status == "ok"){
$requete = "UPDATE $objet SET ";
while(list($cle,$valeur)=each($champs)){
$requete .= "$cle = '$valeur', ";
}
$requete = substr($requete, 0, strlen($requete)-2);
$requete .= " where $cle_primaire = '$valeur_primaire'";
action_simple($requete);
$action = "visualiser";
}else{
$requete = "select * from $objet";
require_once("cadre_formulaire.cgi");
}}
if ($action == 'supprimer'){
$requete = "DELETE FROM $objet where $cle_primaire = '$valeur_primaire'";
action_simple($requete);
$action = "visualiser";
}
if ($action == "visualiser" && $num_enr != ''){
$requete = "select * from $objet";
require_once("cadre_formulaire.cgi");
}}
et dans le fichier action
if ($mode == 'formulaire'){
if ($objet == 'resultats_analyses'){
$champs = array("Nom_Analyse"=>"$nom_analyse",
"Type"=>"$type",
"Nom_Primer"=>"$nom_primer",
"Image" =>"$image",
"Res_Attendu"=>"$res_attendu",
"Res_Obtenu"=>"$res_obtenu",
"Date_Analyse"=>"$date_analyse",
"Commentaire"=>"$commentaire");
$primaire = array("Id_Res_Analyse" => "$id_enr");
if ($action == 'modifier' || $action == 'ajouter'){
if ($image != ''){
$image = stripslashes($image);
$image = preg_replace('/\"/','', $image);
echo $image."<br>";
srand(time());
$taille = 15;
$lettres = "abcdefghijklmnopqrstuvwxyz0123456789";
$dest="";
while (is_file('images/images_resultats_analyses/'.$dest.'.jpg') || $dest == ''){
for ($i=0;$i<$taille;$i++){
$dest.=substr($lettres,(rand()%(strlen($lettres))),1);
}}
$dest = 'images/images_resultats_analyses/'.$gene."_".$dest.'.jpg';
echo $dest."<br>";
if (!copy($image, $dest)){
print("La copie du fichier $image n'a pas réussi...<br>\n");
}else{
$champs['Image'] = $dest;
}}}
if ($action == 'supprimer' || ($action == 'modifier' && $image != '')){
$requete = "SELECT Image FROM $objet where Id_Res_Analyse = $id_enr";
global $host_bd_sapa, $login_bd_sapa, $pass_bd_sapa, $nom_bd_sapa;
$connection = ouvrir_db($host_bd_sapa, $login_bd_sapa, $pass_bd_sapa, $nom_bd_sapa);
$result = mysql_query($requete);
if ($result == 0){
echo 'Impossible d\'effectuer cette requete: '.$requete.'<BR>Veuillez vérifier vos entrées';
}
else{
$ligne = mysql_fetch_row($result);
unlink('images/images_resultats_analyses/'.$ligne[0].'.jpg');
}
fermer_db($connection);
}
traitement_form($champs, $primaire, $objet, $action, $status_bdsapa, $num_enr);
}
Voila je coris pas avoir oublier des trucs
13 avril 2005 à 19:28
++