PHP|Débutant :: Forums

Advertisement

Besoin d'aide ? N'hésitez pas, mais respectez les règles

Vous n'êtes pas identifié(e).

#1 08-10-2010 15:30:50

clikeurs
Membre
Inscription : 08-10-2010
Messages : 1

probleme d affichage e update

bonjour a tous,

je souhaite updater la tables avec des nouveau parametres selons le id que j affiche
et le probleme est que seulement le dernier id  est pris en compte.quand je fais un echo pour verifier  je le vois.

Merci pour toute aide.


<table>
<form method="get"  action="" enctype="multipart/form-data">
<?php  

$heure = date("d/m/y", time());
include ('connect.php');
include ('entete.php');
//------
//$pousada = $_GET['pousada'];
$sql = "SELECT id,nome,pousada,matricula,calca,camisa FROM usiminas where pousada ='BELAS-ARTES' ORDER by nome ASC";
$resultat = mysql_query($sql);
if (!$resultat ){
die('Invalid query: ' . mysql_error());
}
## quelle est la dimension du résultat ?
$nblignes=mysql_num_rows($resultat);
$nbchamps=mysql_num_fields($resultat);
## affichage de l'en-tete du tableau HTML avec les noms des champs
echo "<table border=2 CELLPADDING=\"5\" CELLSPACING=\"5\" WIDTH=\"800\" align=\"CENTER\">
<tr>"
;
// affichage des entete de colonne
for($i=0; $i < $nbchamps; $i++) {
$tabchamps[$i] = mysql_field_name($resultat,$i);
//echo "<th>$tabchamps[$i]</th>";
}
 
### affichage des enregistrements du résultat
for($i=0; $i < $nblignes; $i++) {
$ligne = mysql_fetch_row($resultat);
echo"<tr> <td><input type='text' name='varid' value ='".$ligne[0]."'</td>";
echo "<td>".$ligne[1]."</td>";
echo "<td>".$ligne[2]."</td>";
echo "<td>".$ligne[3]."</td>";
echo "<td><input type=\"text\" name=\"calca\" value ='".$ligne[4]."'></td>";
echo "<td><input type=\"text\" name=\"camisa\" value ='".$ligne[5]."'></td>";
}
?>
<tr><td><input type="submit" name="control" value="Salvar"></td></tr>
</form>
</table>
<table>
<?php
echo $y ;
//$varcalca = $_GET['calca'];
//$varcamisa = $_GET['camisa'];
// Déclaration des différents array()
//if ($_GET['varid']!="")
{    
for($i=0; $i <= $ligne[0][0]; $i++){
 $to = $ligne[$i];
 echo  "<td>".$to."</td>";
}
// update de la table
 //   $query = mysql_query("UPDATE usiminas SET calca=\"$varcalca\", camisa=\"$varcamisa\"  WHERE id ='$valor_id'") or die(mysql_error());    
//echo $valor_id;
}
//fecha a conexão com o banco  
mysql_close();  
 //}
?>
 

VICTOR HUGO DE SOUZA BELAS-ARTES 28384   
WASHINGTON ESEQUIEL DE SOUZA BELAS-ARTES 22183   
WILSON ANTONIO DE ARAUJO BELAS-ARTES 26360   
WILSON GOMES DE BRITO BELAS-ARTES 26833   

seule le resultat  suivant s affiche.
415 WILSON GOMES DE BRITO BELAS-ARTES 26833 1

Edit modo : merci d'utiliser les balises bbcode pour la colorisation syntaxique smile

Hors ligne

#2 08-10-2010 16:44:03

moogli
Modérateur
Inscription : 08-05-2009
Messages : 336
Site Web

Re : probleme d affichage e update

salut,

j'ai testé ton code, qui bien que peu usuel est fonctionnel.

je pense qu'il y a un soucis de conception à l'affichage : l'id ne doit pas etre modifiable tu t'expose à un refus du serveur (si c'est bien comme je pense une clef primaire, elle est unique wink donc y a de très grande chance que ça se morde la queue).

quand a la dernière boucle for, je ne vois pas d'ou sor $ligne[0][0] et bien entendu $ligne ne contient le dernier tuple de la requete puisse que tu l'écrase à chaque "tour" de la boucle for. Pour tous les garder il te faudrais écrire $ligne[]mysql_fetch_rows( .);

les lignes 47 à 58, sont pour moi, la partie de validation du formulaire. dans ce cas il te faut déja tester si $_GET['varid'] existe (avec isset par exemple). ensuite tu peut tester si elle est vide). après la boucle de sert à rien (expliqué plus haut).
ensuite tu n'utilise pas $_GET mais directement les noms de champs dans la construction de la requete, ce qui n'est sécurisé et surtout pas possible si ton paramètre register_globals est à off (en gros pas d'auto déclaration de variable à la suite de soumission de formulaire, ce n'est sécurisé).

peut donner plus d'info sur ce qui ne va pas, si je n'ai pu t'aider avec ces quelques lignes ?

@+


Il en faut peu pour être heureux pompompompompompompompompompompom

Hors ligne

Pied de page des forums