Page 1 sur 1

Variable vide en sortie de tableau

Posté : 31 août 2011, 19:17
par Langelot
Bonjour la communauté !

Pour me facilité la vie à mon travail j'ai décidais de me pondre quelques pages en PHP+mysql sauf que la derniéres fois que j'ai usé de PHP il fallais encore mettre *.php3 ^^ donc sa date et malheureusement ce n'est pas comme le vélo sa fini par s’oublier XD (et je n'est jamais été un bon codeur)

Mon soucis est simple : j'ai une variable vide et qui devrais pas l’être (ni chêne)...

Exemple de résultat de requéte

Code : Tout sélectionner

INSERT INTO hb (tag,att,resume,inter,tech,service) VALUES ('test102','toto_80','essai 806','tagada','CD','')
alors voici mon formulaire (bon faite pas gaffe hein il est pas fini...)

Code : Tout sélectionner

<?php mysql_connect("localhost", "login", "mdp") or die(mysql_error()); mysql_select_db("db") or die(mysql_error()); $result = mysql_query("SELECT * FROM service") or die(mysql_error()); ?> <html> <head> <title>Formulaire de remplissage</title> </head> <body bgcolor=#778899> <table border=0> <form name=form1 action=form2sql.php method=post> <tr> <td><b>S/N ou Tag</b> :</td> <td align=center><input type=text name=tag size=16 maxlength=24></td> <td><input type=checkbox name=graveur value=graveur>Graveur</td> </tr> <tr> <td><b>Attribution</b> :</td> <td align=center><input type=text name=att size=16 maxlength=24></td> <td><input type=checkbox name=ipfi value=ipfi>ipfixe</td> </tr> <tr> <td><b>Service</b> :</td> <td align=center> <select name=service> <?php while($row = mysql_fetch_array( $result )){ echo "<option value=".$row['id']; echo ">".$row['nom']; echo "</option>"; } ?> </select></td> <td><input type=checkbox name=cajout value=cajout>cleajouter</td> </tr> <tr> <td colspan=2><b>Texte</b> :</td> </tr> <tr> <td colspan=2><textarea name=resume cols=60 rows=2 value=>Résumé</textarea></td> </tr> <tr> <td colspan=2><textarea name=inter cols=60 rows=10 value=>Intervention :</textarea></td> </tr> <tr> <td><b>Technicien</b> :</td> <td align=center><select name=tech> <option value=DD>DD</option> <option value=JG>JG</option> <option value=CD>CD</option> <option value=BJ>BJ</option> <option value=JD>JD</option> </select></td> </tr> <tr> <td colspan=2 align=center><input type=submit value=Soumettre></td> </tr> </form> </table> </body> </html>
et la le form2sql.php

Code : Tout sélectionner

<?php mysql_connect("localhost", "login", "mdp") or die(mysql_error()); mysql_select_db("db") or die(mysql_error()); $tag =$_POST['tag']; $att =$_POST['att']; $resume =$_POST['resume']; $inter =$_POST['inter']; $tech =$_POST['tech']; $service =$_post['service'] ?> -- <?php $req = "INSERT INTO hb (tag,att,resume,inter,tech,service) VALUES ('$tag','$att','$resume','$inter','$tech','$service')"; mysql_query($req) or die(mysql_error()); echo $req; echo $service; ?>
Et donc comme expliquer plus haut une fois mon code PHP généré tout est OK mais à l'envoie de résultat la variable reste vide ... j'ai probablement loupé qqchose de banal mais noobpowaaa ^^

Re: Variable vide en sortie de tableau

Posté : 31 août 2011, 19:25
par Langelot
OMG désoler en relisant le code sur le forum

$service =$_POST['service']....

Toute mes excuses

Re: Variable vide en sortie de tableau

Posté : 31 août 2011, 21:59
par Alf?>
Salut,

Petite remarque... bon oui le $_post c'est $_POST et il manquait le ';' à la fin de la même ligne.

A part ça, dans ton code HTML tu as :
<td align=center><input type=text name=tag size=16 maxlength=24></td>
Je ne sais pas si c'est une erreur de rendu au copier/coller sur le forum mais ça s'écrit :
<td align="center"><input type="text" name="tag" size="16" maxlength="24" /></td>
Ce n'est peut-être que du HTML mais il y aura des erreurs sur le long terme si tu omets les cottes (simple ou double) :P

Bonne chance pour la suite :wink:

Re: Variable vide en sortie de tableau

Posté : 31 août 2011, 22:22
par sirakawa
<?php
mysql_connect("localhost", "login", "mdp") or die(mysql_error());
mysql_select_db("db") or die(mysql_error());
print_r($_POST); // avant toute discussion
$tag =$_POST['tag'];
$att =$_POST['att'];
$resume =$_POST['resume'];
$inter =$_POST['inter'];
$tech =$_POST['tech'];
$service =$_POST['service']
?>
--
<?php
$req = "INSERT INTO hb (tag,att,resume,inter,tech,service) VALUES ('$tag','$att','$resume','$inter','$tech','$service')";
echo $req;// avant
mysql_query($req) or die(mysql_error());

echo $service;
?>

Des remarques qui ne résolvent rien, mais la norme est là:
1) je mettrais des simples quotes (obligatoires simples ou doubles d'après le nouvelle norme) aux
value : value ='toto' et non value = toto
name = 'toto' et non name =toto
type='submit'
align ='center'
colspan ='8'
cols='8'
et en général à toutes les valeurs des attibuts. (http://www.w3schools.com/tags/default.asp)
2) pourquoi ne pas mettre un radio O/N pour graveur, ipfixe, cleajouter ?
rows = '8'
2) je fermerais les input:
<input type ='text' name= 'toto' value ='12' />

Re: Variable vide en sortie de tableau

Posté : 31 août 2011, 22:24
par sirakawa
on peut faire mieux et plus simple avec des <div>, mais il faut une feuille de style:
<html>
<head>
<title>Formulaire de remplissage</title>
</head>
<style>
.ensemble 
{
	display:table;
}
.titre 
{
	display:table-caption;
	white-space:nowrap;

}
.ligne
{
	display:table-row;
}
.cellule
{
	display:table-cell;
}
</style>
<body bgcolor=#778899>
<div class='ensemble'>
	<div class= 'titre'>
		S/N ou TAG
	</div>
	<div class = 'ligne'>
			<form name= 'form1' action='form2sql.php' method='post'>
				<input type='text' name='tag' size='16' maxlength='24' />
	</div>
</div>
<div class='ensemble'>
	<div class= 'titre'>
	Graveur
	</div>
	<div class='ligne'>
	   <div class='cellule'>O </div><div class='cellule'><input type='radio' name='graveur' value='O' /></div>
		<div class='cellule'>N</div><div class='cellule'><input type='radio' name='graveur' value='N' /></div>
	</div>
</div>	
<div class='ensemble'>	
	<div class= 'titre'>
		Attribution
	</div>
	<div class= 'ligne'>
		<div class= 'cellule'>
			<input type='text 'name='att' size='16' maxlength='24' />
		</div>
	</div>
</div>
<div class= 'ensemble'>
		<div class = 'titre'>
			IP FIxe
		</div>
	<div class= 'ligne'>
		  <div class='cellule'>O </div><div class='cellule'><input type='radio' name='ipfixe' value='O' /></div>
		<div class='cellule'>N</div><div class='cellule'><input type='radio' name='ipfixe' value='N' /></div>
	</div>
</div>