[PHP]Récupere des données et ....

Statut
N'est pas ouverte pour d'autres réponses.
PHP:
Récupere des données d'une table et les réafiche dans un champ de texte...

Bon voila c'est ce que j'aimerai bien faire je vous montre mon code php

[code]
<?php
// Connection base
$base = mysql_connect ('localhost', 'root', ''); 
mysql_select_db('seb', $base);

// lancement de la requête.
$sql = 'SELECT auteur, titre, date, texte_news FROM news WHERE id=1';


$req = mysql_query($sql) or die('Erreur SQL !<br>'.$sql.'<br>'.mysql_error());


while ($data = mysql_fetch_array($req)) {

  // date 
  sscanf($data['date'], "%4s-%2s-%2s %2s:%2s:%2s", $an, $mois, $jour, $heure, $min, $sec);

  // Affichage du résultats
  echo '<br>News de : '.stripslashes($data['auteur']).'<br>';
  echo 'Titre : '.stripslashes($data['titre']).'<br>';
  echo 'Postée le : '.$jour.'/'.$mois.'/'.$an.' à '.$heure.':'.$min.':'.$sec.'<br><br>';
  echo 'News : '.stripslashes(nl2br($data['texte_news'])).'<br>';

}

?> 
<form method="">
<input name="auteur" value="<?php echo $data['auteur'] ?>">
<input name="titre" value="<?php echo $data['titre'] ?>">
<input name="date" value="<?php echo $data['date'] ?>">
<input name="texte_news" value="<?php echo $data['texte_news'] ?>">
<input type="submit" value="OK">
</form>[/code]

et donc voila j'essaye de faire affiché le resultat dans les champs de texte mais rien ne se passe...
Par contre quand je fait 
[code]
<?
$text = coucou
?>
<input name="auteur" value="<?php echo $text ?>">
[/code]

il m'affiche bien coucou dans mon champs  :( 

Je débute en php depuis seulement 3j donc faut etre indulgent avec moi  :D
 

Styleman

Touriste
tu oublie le ; a la fin

<form method="">
<input name="auteur" value="<?php echo $data['auteur']; ?>">
<input name="titre" value="<?php echo $data['titre']; ?>">
<input name="date" value="<?php echo $data['date']; ?>">
<input name="texte_news" value="<?php echo $data['texte_news']; ?>">
 

Styleman

Touriste
tu est sur ke pour le $texte ça fonctionne???

parce que sans ; apres normalement c pas bon :?
 

Styleman

Touriste
ah ben si ça fonctionne lol, alors c ta requete tout simplement:

$sql = "SELECT auteur, titre, date, texte_news FROM news WHERE id='1'"

Comme ça ça devrait aller

Edit: Ah non puisqu'il y a le or die() ... :?
 

Styleman

Touriste
sinon essaye:
<?
echo "<form method=>"
echo "<input name=auteur value=$data['auteur']>";
echo "<input name=titre value=$data['titre']>";
echo "<input name=date value=$data['date']>";
echo "<input name=texte_news value=$data['texte_news']>";
echo "<input type=submit value=OK>";
echo "</form>"
?>
 
1er
OP
F
Styleman a dit:
sinon essaye:
<?
echo "<form method=>"
echo "<input name=auteur value=$data['auteur']>";
echo "<input name=titre value=$data['titre']>";
echo "<input name=date value=$data['date']>";
echo "<input name=texte_news value=$data['texte_news']>";
echo "<input type=submit value=OK>";
echo "</form>"
?>
vient d'essaye mais
Code:
Parse error: parse error, unexpected T_ECHO, expecting ',' or ';' in c:\program files\easyphp1-7\www\fruit\edit_news.php3 on line 27
 

Styleman

Touriste
apres le form metho= , apres ctette ligne j'ai oublie le ;
 
1er
OP
F
j'ai changé tout ce que tu m'as dit mais bon rien ne se passe :-( je suis entrain de pete une case :x
 
1er
OP
F
Styleman a dit:
apres le form metho= , apres ctette ligne j'ai oublie le ;
Code:
Parse error: parse error, unexpected T_ENCAPSED_AND_WHITESPACE, expecting T_STRING or T_VARIABLE or T_NUM_STRING in c:\program files\easyphp1-7\www\fruit\edit_news.php3 on line 27
 

Styleman

Touriste
ah tu utilise easyphp alors je pense que tu dois définir tes variables, je c po trop ce ke ça veut dire lol mais a mon avis tu dois faire

<?
$auteur = $data['auteur'];
$titre = $data['titre];
$date = $data['date'];
$texte = $data['texte_news'];
?>
<input name="auteur" value="<?php echo $auteur ?>">
<input name="titre" value="<?php echo $titre ?>">
<input name="date" value="<?php echo $date ?>">
<input name="texte_news" value="<?php echo $texte ?>">
<input type="submit" value="OK">
</form>
 
1er
OP
F
c'est possible que ca soit juste easyphp qui fasse tout planté???

car même avec ce que tu m'as dit ca marche po :-( ca affiche la pages mais rien dans les champs :?
 

AssiuM

Fan
Fruitos[silly a dit:
]c'est possible que ca soit juste easyphp qui fasse tout planté???

car même avec ce que tu m'as dit ca marche po :-( ca affiche la pages mais rien dans les champs :?
euh... bin pour en être sûr mets le sur un hébergeur et vérifie ;)
 

Styleman

Touriste
Moi je ne vois pas d'erreur ça m'enerve lol :x
 
1er
OP
F
AssiuM a dit:
Fruitos[silly a dit:
]c'est possible que ca soit juste easyphp qui fasse tout planté???

car même avec ce que tu m'as dit ca marche po :-( ca affiche la pages mais rien dans les champs :?
euh... bin pour en être sûr mets le sur un hébergeur et vérifie ;)
bien je vient de le mettre sur un hebergeur et ca ne vas pas non plus :cry:
 

AssiuM

Fan
problème toujours pas résolu ? essaie de mettre des 'OR die' après chaque requête sql pour voir où ça bug...

mets des echos $variable un peu partout pour voir l'état de tes variables ;)
c'est ainsi que je procède et généralement j'arrive à trouver l'erreur :)
 

ZyPh0s

Touriste
J'veux pas etre mechant mais si tu utilises des variables privées comme tu le fais, c'est normal que les variable soient vide en dehors de la boucle While. Tes variables n'existes que dans la boucle.

Version corrigée mais bon si t'as qu'une valeur à lire pas besoins de la boucle. Enfin je dis ça comme ça.
Code:
<?php 
// Connection base 
$base = mysql_connect ('localhost', 'root', ''); 
mysql_select_db('seb', $base); 

// lancement de la requête. 
$sql = 'SELECT auteur, titre, date, texte_news FROM news WHERE id=1'; 


$req = mysql_query($sql) or die('Erreur SQL !<br>'.$sql.'<br>'.mysql_error()); 


while ($data = mysql_fetch_array($req)) { 

  // date 
  sscanf($data['date'], "%4s-%2s-%2s %2s:%2s:%2s", $an, $mois, $jour, $heure, $min, $sec); 

  // Affichage du résultats 
  echo '<br>News de : '.stripslashes($data['auteur']).'<br>'; 
  echo 'Titre : '.stripslashes($data['titre']).'<br>'; 
  echo 'Postée le : '.$jour.'/'.$mois.'/'.$an.' à '.$heure.':'.$min.':'.$sec.'<br><br>'; 
  echo 'News : '.stripslashes(nl2br($data['texte_news'])).'<br>'; 



?> 
<form method=""> 
<input name="auteur" value="<?php echo $data['auteur'] ?>"> 
<input name="titre" value="<?php echo $data['titre'] ?>"> 
<input name="date" value="<?php echo $data['date'] ?>"> 
<input name="texte_news" value="<?php echo $data['texte_news'] ?>"> 
<input type="submit" value="OK"> 
</form> 
<?php } >
Bon c'est pas joli la fin mais au moins ça ça devrait marcher.
 
j'suis assez d'accord avec zyphos pour le contenu du formulaire, il y a bien un problème de portée de variable.

Le principe de la portée d'une variable est simple. Une variable n'est connue qu'à partir de sa déclaration et pour toute la suite du bloc qui la contient ainsi que les blocs compris.

Il y a quelques astuces et en fonctions des langages, certaines particularités, notemment pour faire connaître des variable en dehors de leur portée directe ou encore les cas d'homonymie quand des blocs contenu ont des variables déclarée de même nom que le bloc comprenant (j'espère me faire comprendre :) ).
mais bon, en général, il faut retenir qu'une variable dans un boucle par exemple, n'est connue que de la boucle et de l'intérieure de celle-ci (d'où ton problème de $data qui n'est connu que dans le while).



Tu devrais essayer un mysql_fetch_object plutôt qu'un array et ensuite $data->auteur pour afficher le contenu du champs auteur... je fais ça parce que j'oublie toujours si il faut un seul ' ou un " dans le nom d'une colonne pour un array.

Sinon, pour répondre à styleman. il ne faut pas de ";" si c'est dans un bloc <? ?> avec une seule instruction.
 

ZyPh0s

Touriste
TheFornicator a dit:
Tu devrais essayer un mysql_fetch_object plutôt qu'un array et ensuite $data->auteur pour afficher le contenu du champs auteur... je fais ça parce que j'oublie toujours si il faut un seul ' ou un " dans le nom d'une colonne pour un array.
Il faut toujours " ;)
Sinon pour info pour ceux qui se soucient de la rapiditée. IL n'y a pas de différence de vitesse entre les 2 méthodes :)
 
1er
OP
F
bon j'ai trouvé grave a l'aide de xyo

Code:
<?php 
// Connection base 
$base = mysql_connect ('localhost', 'root', ''); 
mysql_select_db('seb', $base); 

// lancement de la requête. 
$sql = 'SELECT auteur, titre, date, texte_news FROM news WHERE id=1'; 

$req = mysql_query($sql) or die('Erreur SQL !<br>'.$sql.'<br>'.mysql_error()); 

while ($data = mysql_fetch_array($req)) { 

  // 
  $date = sscanf($data['date'], "%4s-%2s-%2s %2s:%2s:%2s", $an, $mois, $jour, $heure, $min, $sec); 
  $auteur = stripslashes($data['auteur']);
  $titre = stripslashes($data['titre']);
  $texte = stripslashes(nl2br($data['texte_news']));
} 
?>

<form method="POST"> 
<input name="auteur" value="<?php echo "$auteur"; ?>"> 
<input name="titre" value="<?php echo "$titre"; ?>"> 
<input name="texte_news" value="<?php echo "$texte"; ?>"> 
<input name="date" value="<?php echo "$date"; ?>"> 
<input type="submit" value="OK"> 
</form>
et ca marche sans problème comme ca ;)
merci pour les réponses de tout le monde :D
 
Statut
N'est pas ouverte pour d'autres réponses.
Haut