Affecter valeurs de la base à des variables!!

Sina -  
 sina -
Salut à tous,

Je suis en train de développr en php et j'ai un petit problème. Je souhaite bien que vous m'aideriez.
Je veux récupérer les données d'une base dans des variables pour les enregistrer dans une autre table de ma base MySQl
Voici mon essai:
......
......
......
$sql1="select * from frais where id='$val'";
$req1= mysql_query($sql1);
$row=mysql_fetch_object($req1);
$nom=$row['nom_frais'];
$type=$row['unite_frais'];
$sql="insert into affecter_frais_vehicule(nom_frais,type_frais,a_partir_de,matricule_vehicule,num_chassee_vehicule,c) values ('$nom','$type','$date','".$matricule_vehicule."','".$num_chassee."','$val')";
$req= mysql_query($sql);}}

Aidez moi s'il vous plaît!!
Merci d'avance,,
A voir également:

4 réponses

Alain_42 Messages postés 5413 Statut Membre 894
 
$sql1="SELECT * FROM frais WHERE id='$val'";
$req1= mysql_query($sql1);
$row=mysql_fetch_assoc($req1); //il faut utiliser mysql_fetch_assoc pour récupérer comme tu fais plus bas par $row['nom_frais']
$nom=$row['nom_frais'];
$type=$row['unite_frais'];
//avant de faire la requette ci dessous il faut que tu recuperes tes variables
//$date   $matricule_vehicule   $num_chassee
//et soit homogène dans l'écriture de ta requette  et mets les SELECT   WHERE INSERT etc.. en majuscules c'est plus facile à lire
$sql="INSERT INTO affecter_frais_vehicule(nom_frais,type_frais,a_partir_de,matricule_vehicule,num_chassee_vehicule,c) VALUES ('".$nom."','".$type."','".$date."','".$matricule_vehicule."','".$num_chassee."','".$val."')";
$req= mysql_query($sql);
}
} 
0
Sina
 
J'ai essayé ceci mais les champs nom_frais et type_frais restent vides comme si les variables $type et $name contiennent null
Aidez moi!!!!!!!!
0
avion-f16 Messages postés 20368 Date d'inscription   Statut Contributeur Dernière intervention   4 510
 
mysql_fetch_object retourne un objet, pas un array.
Donc ça serait $row->champ et pas $row['champ']
0
Sina
 
Oui, J'ai essayé mais de même les champs nom_frais et type_frais restent vides donc le problème est dans les affectation des variables
Aidez moi s'il vous plaît!!
0
Alain_42 Messages postés 5413 Statut Membre 894
 
mets ces traces d'erreur et echo

$sql1="SELECT * FROM frais WHERE id='$val'";
$req1= mysql_query($sql1) or die ("Pb requette SELECT ".mysql_error());
$row=mysql_fetch_assoc($req1);  
$nom=$row['nom_frais']; //est ce que ton champ de la table frais se nomme bien 'nom_frais' ?
$type=$row['unite_frais'];//est ce que ton champ de la table frais se nomme bien 'unite_frais' ?
echo 'nom_frais lu dans la table frais: '.$nom;
echo '<br />type_frais lu dans la table frais: '.$type;
$sql="INSERT INTO affecter_frais_vehicule(nom_frais,type_frais,a_partir_de,matricule_vehicule,num_chassee_vehicule,c) VALUES ('".$nom."','".$type."','".$date."','".$matricule_vehicule."','".$num_chassee."','".$val."')";
$req= mysql_query($sql) or die ("Pb requette INSERT ".mysql_error());
0
Sina
 
toujours les champs sont vides. ESt ce que cette requête est juste
$sql="INSERT INTO affecter_frais_vehicule(nom_frais,type_frais,a_partir_de,matricule_vehicule,num_chassee_vehicule,c) VALUES ('$nom','$type','".$date."','".$matricule_vehicule."','".$num_chassee."','".$val."')";
$req= mysql_query($sql) or die ("Pb requette INSERT ".mysql_error());
0
Sina
 
Salut,
Voici mon code et je veux expliquer peut être l'erreur se trouve ailleurs;
J'ai dans un premier formulaire deux zones de texte matricule_vehicule et num_chassee et un tableau dynamique contenant sur une première colonne le nom du frais(à partir de la table frais), sur une deuxième colonne le types du frais (à partir de la table frais)et sur une troisième colonnes des cases à cocher .
<td><input type="checkbox" name="choix[]" /></td> //Est ce que je doit ajouter value="...."puis les lignes cochées seront enregistrésdans la table affecter_frais_vehicule
voici le code d'insertion c'est presque le précédent:

<?php

include("connexion.php");

//script ajout insertion de donnée dans la base
import_request_variables(gp);
$date = date('d/m/Y');
$date = explode('/', $date);
$date = array_reverse($date);
$date = implode('/', $date);
if($_POST['Submit']){
$choix = implode(";", $_POST['choix']);
$choix = explode(';', $choix);
foreach($choix as $val){
$sql1="SELECT * FROM frais WHERE id='$val'";
$req1= mysql_query($sql1) or die ("Pb requette SELECT ".mysql_error());
$row=mysql_fetch_assoc($req1);
$nom=$row['nom_frais']; //est ce que ton champ de la table frais se nomme bien 'nom_frais' ?
$type=$row['unite_frais'];//est ce que ton champ de la table frais se nomme bien 'unite_frais' ?
echo 'nom_frais lu dans la table frais: '.$nom;
echo '<br />type_frais lu dans la table frais: '.$type;
$sql="INSERT INTO affecter_frais_vehicule(nom_frais,type_frais,a_partir_de,matricule_vehicule,num_chassee_vehicule,c) VALUES ('$nom','$type','".$date."','".$matricule_vehicule."','".$num_chassee."','".$val."')";
$req= mysql_query($sql) or die ("Pb requette INSERT ".mysql_error());

}}
echo '<script language="javascript">window.location.replace("page1.php");</script>';

?>


toutes les données sont enregistrées sauf le nom_frais et le type_frais
Je suis depuis deux semaines bloquée à ce stade là !!
Aidez moi s'il vous paît!!
J'ai besoin vraiment de votre aide!!

Merci d'avance
0
Alain_42 Messages postés 5413 Statut Membre 894
 
tu ne me dis pas ce que donne les traces d'erreurs et les echos que je t'ai fait rajouter !!!

ensuite
<input type="checkbox" name="choix[]" />

bien sur qu'il faut mettre value="

et ensuite le fait de mettre name=choix[] te renvoie un array$_POST[choix]

donc je ne vois pas du tout l'intêret d'une telle manip:
$choix = implode(";", $_POST['choix']);
$choix = explode(';', $choix);


tu fais simplement

foreach($_POST['choix'] as....
0
sina
 
Oui Merci ça marche bien maintenant mais chaque ligne cochée s'enregistre deux fois dans la table affecter_frais_vehicule
Voici mon code

<?php

include("connexion.php");

//script ajout insertion de donnée dans la base
import_request_variables(gp);

$date = date('d/m/Y');
$date = explode('/', $date);
$date = array_reverse($date);
$date = implode('/', $date);
foreach($choix as $val){
$sql1="SELECT * FROM frais WHERE id='$val'";
$req1= mysql_query($sql1) or die ("Pb requette SELECT ".mysql_error());
$row=mysql_fetch_assoc($req1);
$nom=$row['nom_frais'];
$type=$row['unite_frais'];
$sql="INSERT INTO affecter_frais_vehicule(nom_frais,type_frais,a_partir_de,matricule_vehicule,num_chassee_vehicule,c) VALUES ('$nom','$type','".$date."','".$matricule_vehicule."','".$num_chassee."','$val')";
$req= mysql_query($sql);
echo '<script language="javascript">window.location.replace("page1.php");</script>';
}
?>

Aidez moi à trouver l'erreur s'il vous plaît!!

Merci infiniment!!!
0