Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
3072 connectés 

  FORUM HardWare.fr
  Programmation
  PHP

  Modifications de code PHP (mise en page)

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Modifications de code PHP (mise en page)

n°1739788
zepouss
Posté le 31-05-2008 à 23:44:08  profilanswer
 

Bonjour, je débute complètement sur mysql/php
 
sur un script de livre d'or j'ai un souci, tout se passe bien, je remplis les champs sur ma page test de livre d'or, je fais submit tout va bien et quand je clique sur voir votre commentaire j'ai une erreur :
 
Warning: mysql_numrows(): supplied argument is not a valid MySQL result resource in /home.10.23/jusdefra/www/guestbook.php3 on line 186
 
Ma ligne 186 c'est : $total= mysql_numrows($result)
 
Il y a 4 champs dans ce livre d'or : "name", "email", "job", "comments"
 
tous les champs dans ma base de donnée sont en varchar(30) hormis le comments en varchar(200), l'interclassement en latin_swedish_ci et null = non
 
en attributs, defaut et extra je n'ai rien touché c'est vierge
 
Désolé d'être aussi flou mais je pense que c'est plus un problème de ma configuration de ma table mysql qu'un problème de programmation du script, j'ai juste changé mes identifiants, password, bdd, etc dans le script.
 
Merci beaucoup de votre aide !


Message édité par zepouss le 02-06-2008 à 23:22:08
mood
Publicité
Posté le 31-05-2008 à 23:44:08  profilanswer
 

n°1739800
XprtZ
Profil : O.O
Posté le 01-06-2008 à 00:36:12  profilanswer
 

Tu retournes un nombre de ligne et non ce que tu as saisies.
 
C'est possible d'avoir un peu plus de code ? :o


---------------
PSN : XprtZ - BattleTag : XprtZ#2257 - 3DS : 2492-4109-3060
n°1739801
zepouss
Posté le 01-06-2008 à 00:39:59  profilanswer
 

Voici le code :
 
<tr>
            <td colspan="2"><p align="left">                                                                                                                                              
<?
                                                                     
/* connect to the database */                                  
mysql_pconnect("$host","$user","$password" ) or die("Can't connect to the SQL-server" );
mysql_select_db("$database" );                                                                              
 
/* action=view : retrieve data from the database and show it to the user */                                                                                
if($action == "view" ) {                                                                              
 
/* function for showing the data */
function search_it($name) {                                                      
                                                                         
/* some vars */                                                            
global $offset,$total,$lpp,$dir,$records;                                              
global $table,$html_mail,$admin_name,$admin_mail;
                                                                                                                                     
/* select the data to get out of the database */  
$query = "SELECT * FROM $table ORDER BY ID DESC";                                    
$result = mysql_query($query);                                                
$total= mysql_numrows($result); la fameuse ligne 186                                              
         
print "<CENTER><FONT FACE=\"Verdana\" SIZE=\"-2\"><A HREF=\"$scriptname?action=add\" onMouseOver=\"window.status='Add your name';return true\" onMouseOut=\"window.status='';return true\" TITLE=\"Add your name\">(Add your name)</A></FONT></CENTER><br><br>";      
                                                                         
if ($total== 0) {                                                              
print "<CENTER>At the moment there are no persons in the guestbook.</CENTER><br><br>"; }                                                                              
 
elseif ($total> 0) {                                                          
       
/* default */                                                              
$counter=0;                                                                
if ($dir=="" ) $dir="Next";  
 
$lpp = $records;
                                       
if ($offset==0) $offset=0;  
                                                 
if ($dir=="Next" ) {      
                                                   
if ($total > $lpp) {    
                                                 
$counter=$offset;                                                    
$offset+=$lpp;                                                        
$num=$offset;                                                        
 
if ($num > $total) {  
$num=$total; } }                                                                        
 
else {                                                                  
$num=$total; } }                                                      
 
elseif ($dir=="Previous" ) {                            
 
if ($total > $lpp) {                                
$offset-=$lpp;  
                                   
if ($offset < 0) {  
$offset=0; }    
               
$counter=$offset-$lpp;                            
 
if ($counter < 0)  
$counter=0;                    
$num=$counter+$lpp; }                                                    
 
else {                                              
$num=$total; } }                                                      
 
while ($counter < $num) {                              
$j=0;                                                
$j=$counter + 1;  
 
/* now really grab the data */  
$i1=mysql_result($result,$counter,"name" );
$i2=mysql_result($result,$counter,"email" );
$i3=mysql_result($result,$counter,"job" );
$i4=mysql_result($result,$counter,"comments" );  
 
$i4  =  stripslashes ("$i4" );  
   
/* print it in a nice layout */      
print "<CENTER>\n";
print "<TABLE WIDTH=400 BORDER=0 ALIGN=CENTER VALIGN=TOP><TR><TD><FONT FACE=\"Verdana\" SIZE=\"-2\">\n";
print "<HR>\n";
print "<B>Name:</B> <A HREF=\"mailto:$i2\" onMouseOver=\"window.status='Email $i1';return true\" onMouseOut=\"window.status='';return true\" TITLE=\"Email $i1\">$i1</A>\n";
print "<BR><B>Job:</B> $i3\n";
print "<BR><B>Comment:</B>\n";
print "<BR>$i4\n";
print "</FONT></TD></TR></TABLE>\n";
print "</CENTER>\n";
$counter++;                                                  
}                                                                  
}                                                                  
mysql_close();
}                                                                      
                                                                       
/* execute the function */
search_it($name);                                                    
                                                                         
/* See if we need to put on the NEXT or PREVIOUS buttons */            
if ($total > $lpp) {                                                  
echo("<form action=\"$scriptname?action=view\" method=\"POST\">\n" );              
                                                                         
/* See if we need a PREVIOUS button */                              
if ($offset > $lpp) {                                              
echo("<input type=\"submit\" value=\"Previous\" name=dir>\n" );  }                                                                  
                                                                         
/* See if we need a NEXT button */                                  
if ($offset < $total) {                                            
echo("<input type=\"submit\" value=\"Next\" name=dir>\n" ); }                                                                  
                                                                     
echo("<input type=hidden name=\"offset\" value=\"$offset\">\n" );    
echo("<input type=hidden name=\"name\" value=\"$name\">\n" );        
echo("</form>" );                                                    
}                                                                      
}
 
/* action=add : show a form where the user can enter data to add to the database */
elseif($action == "add" ) { ?>
<FORM ACTION="<?php echo $scriptname; ?>?action=send" METHOD="POST">
<TABLE CELLSPACING="2" ALIGN="CENTER">                
<TR>
 <TD COLSPAN="3" ALIGN="LEFT">
 <B>Please take your time to enter something<BR>
 <CENTER><SMALL>[required fields are marked with *]</SMALL></CENTER></B><BR>
 </TD>
</TR>
<TR>
 <TD ALIGN="LEFT">Name</TD>
 <TD ALIGN="LEFT"><B>*</B></TD>
 <TD ALIGN="LEFT" NOWRAP>
 <INPUT TYPE="TEXT" NAME="form[name]">
 </TD>
</TR>
<TR>
 <TD ALIGN="LEFT">Job</TD>
 <TD ALIGN="LEFT"><B>*</B></TD>
 <TD ALIGN="LEFT" NOWRAP>
 <INPUT TYPE="TEXT" NAME="form[job]">
 </TD>
</TR>
<TR>
 <TD ALIGN="LEFT">Email</TD>
 <TD ALIGN="LEFT"><B>*</B></TD>
 <TD ALIGN="LEFT" NOWRAP>
 <INPUT TYPE="TEXT" NAME="form[email]">
 </TD>
</TR>
<TR>
 <TD ALIGN="LEFT">Comments</TD>
 <TD ALIGN="LEFT"><B>*</B></TD>
 <TD ALIGN="LEFT" NOWRAP>
 <TEXTAREA NAME="form[comments]" COLS="23" ROWS="8" WRAP="VIRTUAL"></TEXTAREA>
 </TD>
</TR>
<TR ALIGN="CENTER">
 <TD COLSPAN="3">
 <INPUT TYPE="SUBMIT" VALUE="Submit">&nbsp;<INPUT TYPE="RESET" VALUE="Reset">  
 </TD>
</TR>
</TABLE>
</FORM>
<?
}  
 
/* action=send : add the data from the user into the database */  
elseif($action == "send" ) {
 
$reset = reset($required);  
while (list($key, $value) = each($required)) {
 if($form[$value] == "" ) {
$count++;
}  
}
 
if($count > 0) {
?>
<FORM ACTION="<?php echo $scriptname; ?>?action=send" METHOD="POST">
<TABLE CELLSPACING="2" ALIGN="CENTER">                
<TR>
 <TD COLSPAN="3" ALIGN="LEFT">
 <B>Please take your time to enter something<BR>
 <CENTER><SMALL>[<FONT COLOR="red">you forgot some fields (marked with *)</FONT>]</SMALL></CENTER></B><BR>
 </TD>
</TR>
<TR>
 <TD ALIGN="LEFT">Name</TD>
 <TD ALIGN="LEFT"><B>*</B></TD>
 <TD ALIGN="LEFT" NOWRAP>
 <INPUT TYPE="TEXT" NAME="form[name]" VALUE="<?php echo $form[name]; ?>">
 </TD>
</TR>
<TR>
 <TD ALIGN="LEFT">Job</TD>
 <TD ALIGN="LEFT"><B>*</B></TD>
 <TD ALIGN="LEFT" NOWRAP>
 <INPUT TYPE="TEXT" NAME="form[job]" VALUE="<?php echo $form[job]; ?>">
 </TD>
</TR>
<TR>
 <TD ALIGN="LEFT">Email</TD>
 <TD ALIGN="LEFT"><B>*</B></TD>
 <TD ALIGN="LEFT" NOWRAP>
 <INPUT TYPE="TEXT" NAME="form[email]" VALUE="<?php echo $form[email]; ?>">
 </TD>
</TR>
<TR>
 <TD ALIGN="LEFT">Comments</TD>
 <TD ALIGN="LEFT"><B>*</B></TD>
 <TD ALIGN="LEFT" NOWRAP>
 <TEXTAREA NAME="form[comments]" COLS="23" ROWS="8" WRAP="VIRTUAL"><?php echo $form[comments]; ?></TEXTAREA>
 </TD>
</TR>
<TR ALIGN="CENTER">
 <TD COLSPAN="3">
 <INPUT TYPE="SUBMIT" VALUE="Submit">&nbsp;<INPUT TYPE="RESET" VALUE="Reset">  
 </TD>
</TR>
</TABLE>
</FORM>
<? }
else {  
if(!$form[email]) {
$form[email] = "n/a"; }
if(!$form[subject]) {
$form[subject] = "n/a"; }
if(!$form[name]) {
$form[name] = "n/a"; }
 
/* check if a HTML-mail should be send or a plain/text mail */  
if($html_mail == "yes" ) {
mail("$admin_name <$admin_mail>","PHP3 Guestbook Addition","<HTML><BODY><FONT FACE=\"Century Gothic\"><TABLE BORDER=\"0\" WIDTH=\"100%\" CELLSPACING=\"4\"><TR>$form[name] ($form[email]) wrote the following message in the guestbook :</TR><TR><TD ALIGN=\"LEFT\">&nbsp;</TD><TD ALIGN=\"LEFT\" NOWRAP>&nbsp;</TD></TR><TR><TD ALIGN=\"LEFT\">$form[comments]</TD><TD ALIGN=\"LEFT\" NOWRAP>&nbsp;</TD></TR><TR><TD ALIGN=\"LEFT\">&nbsp;</TD><TD ALIGN=\"LEFT\" NOWRAP>&nbsp;</TD></TR><TR><TD ALIGN=\"LEFT\">Name:</TD><TD ALIGN=\"LEFT\" NOWRAP>$form[name]</TD></TR><TR><TD ALIGN=\"LEFT\">Beroep:</TD><TD ALIGN=\"LEFT\" NOWRAP>$form[job]</TD></TR><TR><TD ALIGN=\"LEFT\">Email:</TD><TD ALIGN=\"LEFT\" NOWRAP>$form[email]</TD></TR></TABLE></BODY></FONT></HTML>", "From: $form[name] <$form[email]>\nReply-To: $form[name] <$form[email]>\nContent-type: text/html\nX-Mailer: PHP/" . phpversion());  
}
else {
mail("$admin_mail","PHP3 Guestbook Addition","$form[name] ($form[email]) wrote the following message in the guestbook : \n\n $form[comments]\n\n Name: $form[name] \n Job: $form[job] \n Email: $form[email] \n", "From: $form[name] <$form[email]>\nReply-To: $form[name] <$form[email]>\nContent-type: text/plain\nX-Mailer: PHP/" . phpversion());  
}
 
/* MySQL really hates it when you try to put things with ' or " characters into a database, so strip these...*/  
$form[comments]  =  addslashes ("$form[comments]" );
$query = "INSERT INTO $table VALUES('','$form[name]', '$form[email]', '$form[job]', '$form[comments]')";
$result = MYSQL_QUERY($query);
 
?>
<BR><P ALIGN = CENTER>Thank you, <?php echo $form[name]; ?>, for adding your name to our guestbook.
<BR><P ALIGN = CENTER><A  HREF="<?php echo $scriptname; ?>?action=view" onMouseOver="window.status='View your comment now';return true" onMouseOut="window.status='';return true" TITLE="View your comment now">View your comment now.</A><BR><BR>
<?
 
}                                                                    
}
 
/* if there's no action given, then we must show the main page */
else {
 
/* get the number of entries written into the guestbook*/
$query = "SELECT name from $table";
$result = MYSQL_QUERY($query);
$number = MYSQL_NUMROWS($result);
             
if  ($number  == "" )  {
$entry  =  "At the moment there are no persons"; }
 
elseif  ($number  == "1" )  {
$entry  = "At the moment there is 1 person"; }
 
else  {
$entry  = "At the moment there are $number persons"; }
 
echo    "<CENTER><BR>";
echo    "<P>$entry  in  the guestbook.<BR>";
echo    "<H4><FONT FACE=\"Verdana\" SIZE=\"-2\"><A HREF=\"$scriptname?action=add\" onMouseOver=\"window.status='Add your name to our guestbook';return true\" onMouseOut=\"window.status='';return true\" TITLE=\"Add your name to our guestbook\">Add your name to our guestbook</A></FONT></H4>";
 
if  ($number  > "" ) {  
echo    "<H4><FONT FACE=\"Verdana\" SIZE=\"-2\"><A HREF=\"$scriptname?action=view\" onMouseOver=\"window.status='View the names in our guestbook';return true\" onMouseOut=\"window.status='';return true\" TITLE=\"View the names in our guestbook\">View the names in our guestbook</A></FONT></H4>"; }
echo    "</P></CENTER>";
}
?>
<BR><SMALL><CENTER>Script by <A HREF="http://www.aitsh.com/" onMouseOver="window.status='Script by Advanced IT Services Holland';return true" onMouseOut="window.status='';return true" TITLE="Script by Advanced IT Services Holland">Advanced IT Services Holland</A></CENTER></SMALL>
</FONT>
</p>
              <p>&nbsp;</p></td>
            </tr>


Message édité par zepouss le 01-06-2008 à 00:41:28
n°1739809
zepouss
Posté le 01-06-2008 à 02:06:18  profilanswer
 

ça ne viendrait pas de ça ?
 
$query = "SELECT * FROM $table ORDER BY ID DESC";  

n°1739843
zepouss
Posté le 01-06-2008 à 11:56:43  profilanswer
 

une idée quelqu'un ? merci !

n°1739849
flo850
moi je
Posté le 01-06-2008 à 12:53:19  profilanswer
 

mysql_num_rows , pas  mysql_numrows  
 
 
et que vaut $table ?


---------------

n°1739893
zepouss
Posté le 01-06-2008 à 16:44:17  profilanswer
 

c'est à dire ?
 

n°1739971
zepouss
Posté le 01-06-2008 à 22:22:48  profilanswer
 

Même avec en ajoutant un "_" à mysql_num_rows à la place de mysql_numrows ça ne fonctionne toujours pas :(

n°1739994
XprtZ
Profil : O.O
Posté le 02-06-2008 à 00:18:10  profilanswer
 

zepouss a écrit :

c'est à dire ?
 


 
est ce que $table contient bien le nom de ta table ?


---------------
PSN : XprtZ - BattleTag : XprtZ#2257 - 3DS : 2492-4109-3060
n°1739995
zepouss
Posté le 02-06-2008 à 00:25:47  profilanswer
 

oui oui $table contient bien le nom de ma table. Je me demandais juste si j'avais bien créée la table.
 
j'y ai mis les 4 champs du script à savoir name, job, email et comments
 
et je vois bien ma table sur le phpmyadmin...
 
je ne sais donc pas d'où peut venir l'erreur :(

mood
Publicité
Posté le 02-06-2008 à 00:25:47  profilanswer
 

n°1739996
XprtZ
Profil : O.O
Posté le 02-06-2008 à 00:26:38  profilanswer
 

Ah ton erreur vient qu'il n'y a pas de champs ID dans ta table et que tu fais un "ORDER BY ID".


Message édité par XprtZ le 02-06-2008 à 00:27:13

---------------
PSN : XprtZ - BattleTag : XprtZ#2257 - 3DS : 2492-4109-3060
n°1740000
zepouss
Posté le 02-06-2008 à 00:41:02  profilanswer
 

qu'est ce qu'un champ ID ?
 
et comment réparer ce problème ?
 
Merci ! !

n°1740003
XprtZ
Profil : O.O
Posté le 02-06-2008 à 00:54:06  profilanswer
 

zepouss a écrit :

qu'est ce qu'un champ ID ?

 

et comment réparer ce problème ?

 

Merci ! !

 

Quand tu as crée ta table, tu as crée 4 champs : name, job, email et comments.

 
Code :
  1. $query = "SELECT * FROM $table ORDER BY ID DESC";
 

Ta requête se traduit par "je récupére toutes les données de ma table "$table" en les ordonnant avec ton champs ID dans l'ordre décroissant (désolé il se fait tard donc c'est peut-être pas très français :o ).

 

Le problème est que tu n'as pas de champs ID dans ta table donc cela provoquera une erreur. Pour palier à ce problème il faut soit que tu enlève la clause "ORDER BY ID DESC" ou bien que tu rajoutes un champs ID dans ta table (2ieme méthode conseillée, en général on met un champs ID car utile)


Message édité par XprtZ le 02-06-2008 à 00:54:28

---------------
PSN : XprtZ - BattleTag : XprtZ#2257 - 3DS : 2492-4109-3060
n°1740553
zepouss
Posté le 02-06-2008 à 22:29:59  profilanswer
 

Merci beaucoup ! Ca fonctionne maintenant :)
 
Autre question, voici le bout de code que j'aimerai modifier :  
 

Citation :


<?
 
}                                                                    
}
 
/* if there's no action given, then we must show the main page */
else {
 
/* get the number of entries written into the guestbook*/
$query = "SELECT name from $table";
$result = MYSQL_QUERY($query);
$number = MYSQL_NUMROWS($result);
             
if  ($number  == "" )  {
$entry  =  "A l'heure actuelle, personne n'a encore laissé de message"; }
 
elseif  ($number  == "1" )  {
$entry  = "A l'heure actuelle, 1 personne a laissé un message"; }
 
else  {
$entry  = "A l'heure actuelle, $number personnes ont laissé un message"; }
 
echo    "<CENTER><BR>";
echo    "<P>$entry  dans le livre d'or.<BR>";
echo    "<H4><FONT FACE=\"Verdana\" SIZE=\"-2\"><A HREF=\"$scriptname?action=add\" onMouseOver=\"window.status='Ajouter votre message';return true\" onMouseOut=\"window.status='';return true\" TITLE=\"Ajouter votre message\">Ajouter votre message</A></FONT></H4>";
 
if  ($number  > "" ) {  
echo    "<H4><FONT FACE=\"Verdana\" SIZE=\"-2\"><A HREF=\"$scriptname?action=view\" onMouseOver=\"window.status='Lire les messages';return true\" onMouseOut=\"window.status='';return true\" TITLE=\"Lires les messages\">Lire les messages</A></FONT></H4>"; }
echo    "</P></CENTER>";
}
?>


 
Voilà ce que ça donne :  
 
http://www.jusdeframboise.com/help.jpg
 
1. Comment avoir un espace entre la ligne "A l'heure actuelle, 2 personnes ont laissé un message dans le livre d'or." et "Ajouter votre message" et idem entre "Ajouter votre message" et "Lire les messages"
 
2. Plus subtil encore, comment remplacer "Ajouter votre message" par une image avec un lien vers le formulaire d'ajout de message et même question, comment remplacer "Lire les messages" par une image avec un lien vers les messages !
 
Merci énormément pour votre patience et votre aide !
 
EDIT: désolé 2xyo j'ai édité mon message en mettant ce que je voulais pendant que tu postais :) tu as été rapide sur ce coup !

Message cité 1 fois
Message édité par zepouss le 02-06-2008 à 22:37:49
n°1740557
2xyo
2*yo = yoyo
Posté le 02-06-2008 à 22:34:39  profilanswer
 

zepouss a écrit :

Merci beaucoup ! Ca fonctionne maintenant :)
 
Autre question, voici le bout de code que j'aimerai modifier :  
 


 
Et le modifier pour ?  :sarcastic:


---------------
2 * yo = yoyo
n°1740684
zepouss
Posté le 03-06-2008 à 10:26:21  profilanswer
 

Any idea ?
 
Merci beaucoup !

n°1740801
xphanoo
Posté le 03-06-2008 à 13:31:26  profilanswer
 

salut
pour les sauts de ligne c'est simple, tu rajoute <BR> là où tu veux.
 

Code :
  1. echo    "<CENTER><BR>";
  2. echo    "<P>$entry  dans le livre d'or.<BR><BR>";
  3. echo    "<H4><FONT FACE=\"Verdana\" SIZE=\"-2\"><A HREF=\"$scriptname?action=add\" onMouseOver=\"window.status='Ajouter votre message';return true\" onMouseOut=\"window.status='';return true\" TITLE=\"Ajouter votre message\">Ajouter votre message</A></FONT></H4><BR>";
  4. if  ($number  > "" ) { 
  5. echo    "<H4><FONT FACE=\"Verdana\" SIZE=\"-2\"><A HREF=\"$scriptname?action=view\" onMouseOver=\"window.status='Lire les messages';return true\" onMouseOut=\"window.status='';return true\" TITLE=\"Lires les messages\">Lire les messages</A></FONT></H4>"; }
  6. echo    "</P></CENTER>";


Message édité par xphanoo le 03-06-2008 à 13:31:46
n°1740814
xphanoo
Posté le 03-06-2008 à 13:45:42  profilanswer
 

pour ta 2ème question il te suffit de remplacer le texte "Ajouter votre message" par <IMG SRC='lienverstonimage.jpg'>

n°1740997
zepouss
Posté le 03-06-2008 à 18:43:03  profilanswer
 

Merci ! !


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  PHP

  Modifications de code PHP (mise en page)

 

Sujets relatifs
recuperer resultset d'une requete servlet dans une page jsp[Résolu] Fil d'Ariane PHP/MySQL sur système d'include
chercher proprietaire d'une page voila.frProbleme REGEX et PHP
Php + LDAP+ APACHE gros soucisPHP MYSQL PhpMyAdmin
[PHP/SGBD] Migration de Access à MySQL - Export pictures[PHP/MySQL] : recherche dans une base de données + affichage
Ouvrir une nouvelle page web avec des options 
Plus de sujets relatifs à : Modifications de code PHP (mise en page)


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR