Aide - Recherche - Membres - Calendrier
Version complète : [PHP]Lecture d'un message dans une base
Forum Webmaster - Ton Webmaster > Conception de sites > Programmation > php
flightsim
Bonjour

aprés avoir régler mon problème d'envoie d'info dans la base de donnée (formulaire)

mais j'en ai un autre mad.gif c'est que quand le formulaire et envoyer dans la base de donnée ($titre, $message, $email,$pseudo...)il et automtiquement numéroté (id=01,02,03...)

Pour que quand je clique sur le lien de d'un message (<a href="http://:"voir.php?=.$id."">".$titre."</a>)il vas sur une page puis affiche le bon message au bon endrois

mais je sais pas comment le faire :what: :what: :what: :what:



SI VOUS AVEZ PAS COMPRIS DITE MOI LE !!!!!!!!!! MERCI
mitch10593
Salut à toi flightsim,



Avant toutes choses, saches que je ne m'acharne pas sur toi particluièrement mais j'ai quand même besoin de le dire à tout le monde:



Beaucoup d'entre nous programmons dans divers langage (php entre autres). Il me semble que toi aussi vu l'origine de tes questions.

Il me semble également que si on écrit n'importe comment:

CODE
fi($[toto<]50) ehco $otto;


au lieu de:

CODE
if($[toto]<50)  echo $toto;


le script ne va pas fonctionner correctement.



Aussi, puisque nous parlons tous un même langage, il me semble qu'il faudrait que chacun fasse l'effort de rédiger ses posts dans un français compréhensible. A partir de trois fautes par mot, c'est plus le même mot (surtout dans un mot de 3 lettres).



Voilà, c'est un petit coup de gueule, peut-être mal placé auquel cas j'en suis désolé.
mitch10593
Bon, après mon petit coup de gueule, je vais quand même essayer de répondre:



après une insertion dans une table mysql, on peut récupérer la référence d'insertion:

CODE
$id=mysql_insert_id();
Nitro83
Salut, alors bon je ne comprends pas trop, comme le dit mon camarade ci-dessous écris mieux stp :sad.gif . Sinon ce que j'ai compris c'est que tu ve recuperer les infos d'un champ a partir d'un id auto incrément.



Si c'est ça, il te faut créer une boucle, exemple:

<?



$db = mysql_connect('sql','login','pass') or die("erreur de connexion");

mysql_select_db('login',$db) or die("erreur de connexion");

$envoi = mysql_query("SELECT * FROM tatable WHERE id=$id");

while($result = mysql_fetch_array($envoi))

{

echo "Mon id est $result[id], et je vais vous donner mes infos:<br>Mon pseudo:$result[pseudo] etc...";

}

?>



Je sais pas si j'ai fais quelque faute mais copie pas le code c'est pour te montrer comment ça marche wink.gif. Tu pe aussi conter le nombre denregistrement, par exemple



if(mysql_num_rows($sql)==0) {print "Aucun enregistrement dans cette table...";}



il te faut au préalable avoir créer une variable sql avec les infos nécessaire, mais j'enleve quelque truc pour que tu evite de Copie/Coller.
Nitro83
mdr mithc, tu as pas donner beaucoup de précision et ca sert un pe a rien ce que tu as mis, tien phpdebutant.org, tu verra ya des bons cours
flightsim
Bonjour



je sais que je fait des faute de Français mais ...désoler et excusé moi





merci Nitro83 ton code marche !!!! merci

mais j'ai un petit problème Nitro83 a dit que sous phpmyadmin il faut nommée la valeur id

en auto incrément voici une image :

user posted image



mais quand je change la valeur, phpmyadmin me marque :



CODE



Erreur


requête SQL :  [Modifier]





ALTER TABLE `flightsimu01_db`.`news1` CHANGE `id` `id` MEDIUMINT(10) DEFAULT '0' NOT NULL AUTO_INCREMENT








MySQL a répondu:








Incorrect table definition; There can only be one auto column and it must be defined as a key








Retour


(je comprend pas trop l'Anglais)



Merci de votre aide







[ita]*** Message édité par flightsim le 15/09/2004 13:22 ***[/ita]
Nitro83
salut c'est normal il faut que tu mette id en primary key et type met int et valeur 11





[ita]*** Message édité par Nitro83 le 15/09/2004 13:42 ***[/ita]
flightsim
Bonjour !



Merci ça marche !!!!



Mais j’ai encore un problème (lol encore)

Le voici :





Quand il y a 1 enregistrement dans ma table mysql , et que je clique sur le seul message .par exemple :



….voir1.php?id=1



c’est bon le message s’affiche correctement, il s’affiche 1 seul fois .



Mais quand il y a 2 enregistrement dans la table il s’affiche deux 2 fois puis 3 si il y a 3 enregistrement….



Voici le code du fichiers voir1.php :

CODE



<?php


// Inclure le fichier config.php


Include("config.php");





$Sql ="select pseudo,email,message,date from news1 order by id desc";


$requete = mysql_query($Sql);


$envoi = mysql_query("SELECT * FROM news1 WHERE id=$id");


while($result = mysql_fetch_array($envoi))





while($j = mysql_fetch_array($requete))


{


   $pseudo = $j[pseudo];


   $email = $j[email];


   $message = $j[message];


   $date = $j[date];


   $titre = $j[titre];


   $id = $j[id];





   


   $date_p = explode(" ",$date);


   $datep = $date_p[0];


   $heurep = $date_p[1];





   $heure_a = $heurep[0].":".$heurep[1];


   $date_a = $datep[2]."/".$datep[1]."/".$datep[0];





   


   echo("".$result[titre]." <br>".$result[message]." <br><br><br> par <a href="mailto:".$result[email]."">".$result[pseudo]."</a> le ".$result[date_a]." à ".$result[heure_a]."nn<br>");


}


mysql_close();


?>






Merci de m’aidé



ps: pour faire les page j'utilise des morceaux de cours sur le php (je me suis servi d'un tuto pour faire un livre d'or )







[ita]*** Message édité par flightsim le 15/09/2004 14:02 ***[/ita]
Nitro83
euh je vois pas du tou la dsl, essaye de rajouter limit 0,1 ken tu fai le order by id par exemple rajoute limit 0,1 apres
mitch10593
CODE
Mais quand il y a 2 enregistrement dans la table il s’affiche deux 2 fois puis 3 si il y a 3 enregistrement….




C'est tout à fait normal: tu as tes 2 while imbriqués.



Pour afficher un seul enregistrement:



CODE
<?php


// Inclure le fichier config.php


Include("config.php");





$sql = mysql_query("SELECT * FROM news1 WHERE id=$id");


$rows=mysql_fetch_array($sql);


$pseudo = $rows[pseudo];


$email = $rows[email];


$message = $rows[message];


$date = $rows[date];


$titre = $rows[titre];


$id = $rows[id];





$date_p = explode(" ",$date);


$datep = $date_p[0];


$heurep = $date_p[1];


$heure_a = $heurep[0].":".$heurep[1];


$date_a = $datep[2]."/".$datep[1]."/".$datep[0];





echo("".$rows[titre]." <br>".$rows[message]." <br><br><br> par <a href="mailto:".$rows[email]."">".$result[pseudo]."</a> le ".$rows[date_a]." à ".$rows[heure_a]."nn<br>");


}


mysql_close();


?>




à ne pas confondre avec l'affichage de la liste (qui nécessite le while pour parcourir les résultats).
flightsim
Merci mais la technique de Nitro83 marche mais ta technique mitch10593 elle a une fonction en plus ???

Ben j’ai encore un problème (et oui encore lol)

Voilà j’ai essayé de mettre un tableau et dans ce tableau mettre le titre mais il me marque erreur

voila le code :

CODE



echo("[b]<table border="0.5" width="58%" bgcolor="#9AADBA" bordercolor="#9AADBA" bordercolorlight="#9AADBA" bordercolordark="#9AADBA" height="15"><tr> <td width="100%" height="9"><b>[/b]".$result[titre]."</b></td>


<br><br><br>".$result[message]." <br><br><br> Par <a href="mailto:".$result[email]."">".$result[pseudo]."</a> le ".$result[date]." à ".$result[heure_a]."nn<br>");




merci

mais ce code marche dans du html

j’ai remarqué que j’avais des slashes comment on fait pour les enlevées merci
mitch10593
QUOTE
Merci mais la technique de Nitro83 marche mais ta technique mitch10593 elle a une fonction en plus ???


mais ça marche finalement ? je croyais que ça affichait plusieurs fois la même chose....



[quote2]Voilà j’ai essayé de mettre un tableau et dans ce tableau mettre le titre mais il me marque erreur[/quote2]



en effet, y'a une grosse erreur: tu peut pas utiliser les " si tu les utilises déjà pour le echo "chaine de caractères".



CODE
echo "<table border='0.5' width='58%' bgcolor='#9AADBA' bordercolor='#9AADBA' bordercolorlight='#9AADBA' bordercolordark='#9AADBA' height='15'><tr> <td width='100%' height='9'><b>".$result[titre]."</b></td>


<br><br><br>".$result[message]." <br><br><br> Par <a href="mailto:".$result[email]."">".$result[pseudo]."</a> le ".$result[date]." à ".$result[heure_a]."nn<br>";






[ita]*** Message édité par mitch10593 le 15/09/2004 16:23 ***[/ita]
flightsim
merci



ben il y a un truc de bizzare le tableau s'affiche bien mais pas au bon endrois il s'affiche en bas de la page au lieu d'être en haut :crazy: bizzare tout ça ....merci





pour le truc de message oui la technique de Nitro83 marche
Nitro83
essaye dan le tableau de mettre valign=top
flightsim
Merci mais non marche pas mais pas grave je ferais ça pour la version 2.0



Mais j'ai un problème important



Voila lors de la lecture du message le fichers voir1.php oublie de sauter des lignes

voila le message dans le formulaire d'envoie :

CODE



A             A








A             A








A             A








A             A






Voila le message dans phpmyadmin :



CODE



A             A








A             A








A             A








A             A






et voila le message dans le fichiers voir1.php (le fichiers ou on vois le message) :



CODE
A A A A A A A A




il doit avoir un problème dans le fichiers voir1.php



Ps le code de voir1.php :

CODE



<?php


// Inclure le fichier config.php


Include("config.php");





$Sql ="select pseudo,email,message,date from news1 order by id desc limit 0,1";


$requete = mysql_query($Sql);


$envoi = mysql_query("SELECT * FROM news1 WHERE id=$id");


while($result = mysql_fetch_array($envoi))


while($j = mysql_fetch_array($requete))


{


$pseudo = $j[pseudo];


$email = $j[email];


$message = $j[message];


$date = $j[date];


$titre = $j[titre];


$id = $j[id];


$date_p = explode(" ",$date);


$datep = $date_p[0];


$heurep = $date_p[1];


$heure_a = $heurep[0].":".$heurep[1];


$date_a = $datep[2]."/".$datep[1]."/".$datep[0];





echo("<b>".$result[titre]."</b> <br><br>".$result[message]."<br><br><br> Par <a href="mailto:".$result[email]."">".$result[pseudo]."</a> le ".$result[date]."nn<br>");


}


mysql_close();


?>




Merci

Ps2 : tout marche grace à vous MERCI MERCI







[ita]*** Message édité par flightsim le 16/09/2004 16:23 ***[/ita]











[ita]*** Message édité par flightsim le 16/09/2004 16:26 ***[/ita]
flightsim
pas d'idée :what: :what: merci
flightsim
merci mais j'ai trouvez il fallez rajouter nl2br aprés echo
C\'est une version "bas débit" de notre forum. Pour voir la version complète avec plus d\'information, la mise en page et les images, veuillez cliquez ici.
Invision Power Board © 2001-2012 Invision Power Services, Inc.