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

  FORUM HardWare.fr
  Programmation
  PHP

  simplifier ce code

 


 Mot :   Pseudo :  
 
 Page :   1  2
Page Précédente
Auteur Sujet :

simplifier ce code

n°780071
atic
Posté le 28-06-2004 à 09:58:53  profilanswer
 

bonjour a tous  
mon probleme je suis débutant et
je voudrais changer le code suivant de maniere a supprimer les fonctions mysql_list_fields
mysql_field_name
et les remplacer par es mysql_query...
mais je n'arrive pas a faire un affichage correct
pourriez vous m'indiquer la marhe a suivre
 
 
 $fds = @mysql_list_fields($db,$tb,$dbl);
  for ($j = 0; ($fd = @mysql_field_name($fds, $j)) != ''; $j++) {
   if ($fd == $id) {
    echo_buffer("\$opts['key_type'] = '".@mysql_field_type($fds, $j)."';" );
    break;
   }
  }
 MERCI

mood
Publicité
Posté le 28-06-2004 à 09:58:53  profilanswer
 

n°780079
black_lord
Truth speaks from peacefulness
Posté le 28-06-2004 à 10:02:45  profilanswer
 

mysql_query sert à passer une requête et ne fait pas la même chose que les 2 autres fonctions.
 
lis la doc plutôt que d'essayer de te débarasser de fonctions que tu comprends pas.
 
et je suis gentil : http://www.nexen.net/docs/php/anno [...] lien=mysql


---------------
uptime is for lousy system administrators what Viagra is for impotent people - mes unixeries - github me
n°780125
T509
$job->GetJob(now)
Posté le 28-06-2004 à 10:37:42  profilanswer
 

Dit Atic, tu es gentil, mais j'ai répondu à ta question vendredi 25 et je t'ai donné un lien vers un autre topic ou j'explique comment faire.
 


---------------
fermez vos topics résolus avec le tag [Résolu] en fin de titre. Merci !
n°780126
atic
Posté le 28-06-2004 à 10:39:00  profilanswer
 

t'as pas tort quand tu dis que je veux me débarrasser de ces fonctions
mais le truc c'est qu'il faut que j'adapte ce code a une base pgsql
et je trouve pas d'équivalent donc je cherche un moyen de contourner l'obstacle
et je trouve pas!

n°780132
T509
$job->GetJob(now)
Posté le 28-06-2004 à 10:42:03  profilanswer
 

Je t'ai donné la solution !


---------------
fermez vos topics résolus avec le tag [Résolu] en fin de titre. Merci !
n°780148
atic
Posté le 28-06-2004 à 10:47:40  profilanswer
 

T509 jai honte de cette reponse mais c la vérité
"MAIS JAI PAS COMPRIS"
jai rien pigé a ce quil y avai ds le topic
si tu pouvais te rabaisser a mon niveau et etre plus clair ca serait gentil

n°780166
Berceker U​nited
PSN : berceker_united
Posté le 28-06-2004 à 11:03:41  profilanswer
 

regarde la doc dans la gestion des bases postgresql tu verras qu'il y a l'équivalent. en générale il y a quasiment le meme nom !

n°780215
T509
$job->GetJob(now)
Posté le 28-06-2004 à 11:21:48  profilanswer
 

plutôt que d'utiliser une fonction PHP, fait une requête SQL
 
La syntaxe de la requête est "SHOW COLUMNS FROM ta_table;"
pg_query($link_base, $requete);
 
Cela doit être décrit dans la doc Postgré


Message édité par T509 le 28-06-2004 à 11:22:19

---------------
fermez vos topics résolus avec le tag [Résolu] en fin de titre. Merci !
n°780350
atic
Posté le 28-06-2004 à 12:40:18  profilanswer
 

voila ce que jai fais mais qui ne marche pas
en fait je voudrais afficher des boutons avec les noms des differentes colonnes
$qr="SHOW COLUMNS FROM $tb";
$ou = @pg_query($conn,$qr);
  for($j=0;$ouais =@pg_fetch_array($ou,$j,PGSQL_ASSOC)!= '';$j++){
   $ouais = htmlspecialchars($ouais);
  $checked = $j == 0 ? ' checked' : '';
  echo '<tr><td><input'.$checked.' type="radio" name="tb" value="'.$ouais.'"></td><td>'.$ouais.'</td></tr>'."\n";
   
  echo ouais;}
 
voila mon truc. T509 si tu es là manifeste toi j'ai besoin de toi!!

n°780357
Lord II
PIB2000
Posté le 28-06-2004 à 12:43:59  profilanswer
 

A quel niveau, cela ne fonctionne pas ?


---------------
La bave du crapaud n'empèche pas la caravane de passer .
mood
Publicité
Posté le 28-06-2004 à 12:43:59  profilanswer
 

n°780361
atic
Posté le 28-06-2004 à 12:47:01  profilanswer
 

ben ca naffiche rien mais comme la syntaxe des fonctions parai bonne je nai aucun moyen de verifier où est le pb
mai je pense que c'est laboucle qui est super mal faite

n°780363
Lord II
PIB2000
Posté le 28-06-2004 à 12:51:02  profilanswer
 

Premièrement, tu as des fonctions qui te permettent de vérifier le résultat de ta requètes :  

Code :
  1. pg_last_error
  2. pg_last_notice
  3. pg_result_status
  4. pg_result_error


 
Ensuite, s'il n'y a pas d'erreur, tu peux regarder si ta boucle est bien parcourue via un petit echo dans la boucle.


Message édité par Lord II le 28-06-2004 à 12:51:21

---------------
La bave du crapaud n'empèche pas la caravane de passer .
n°780364
T509
$job-&gt;GetJob(now)
Posté le 28-06-2004 à 12:55:16  profilanswer
 

atic a écrit :

voila ce que jai fais mais qui ne marche pas
en fait je voudrais afficher des boutons avec les noms des differentes colonnes
$qr="SHOW COLUMNS FROM $tb";
$ou = @pg_query($conn,$qr);
  for($j=0;$ouais =@pg_fetch_array($ou,$j,PGSQL_ASSOC)!= '';$j++){
   $ouais = htmlspecialchars($ouais);
  $checked = $j == 0 ? ' checked' : '';
  echo '<tr><td><input'.$checked.' type="radio" name="tb" value="'.$ouais.'"></td><td>'.$ouais.'</td></tr>'."\n";
   
  echo ouais;}
 
voila mon truc. T509 si tu es là manifeste toi j'ai besoin de toi!!


 
essaie ce code :
 
 

Code :
  1. $j=0;
  2. $qr="SHOW COLUMNS FROM $tb";
  3. $ou = pg_query($conn,$qr);
  4.   while($buffer=pg_fetch_array($ou,$j,PGSQL_ASSOC)){
  5.    $tab[] = $buffer;
  6.         $j++;
  7. }
  8. print_r ($tab);


 
ensuite dis nous ce que tu obtiens


Message édité par T509 le 28-06-2004 à 12:57:22

---------------
fermez vos topics résolus avec le tag [Résolu] en fin de titre. Merci !
n°780366
atic
Posté le 28-06-2004 à 12:57:51  profilanswer
 

c'est bien ce que je pensais ma boucle n'est pas parcourue
et l je vois pas d'ou vient le pb
serait il preferable de faire un foreach pour retourner tout ce qu'il y a ds la liste?

n°780376
atic
Posté le 28-06-2004 à 13:05:00  profilanswer
 

T509 je n'obtiens rien avec ton code
rien ne s'affiche
c'est désolant

n°780394
Lord II
PIB2000
Posté le 28-06-2004 à 13:12:53  profilanswer
 

Ta requète renvoir t'elle quelque chose ??


---------------
La bave du crapaud n'empèche pas la caravane de passer .
n°780412
T509
$job-&gt;GetJob(now)
Posté le 28-06-2004 à 13:19:12  profilanswer
 

Code :
  1. $qr="SHOW COLUMNS FROM $tb";
  2. $ou = pg_query($conn,$qr);
  3. $num_result = pg_num_rows($ou);
  4. if ($num_result > 0) {
  5.      for($i = 0; $i < $num_result ; $i++){
  6.        $tab[] = pg_fetch_array($ou);
  7.      }
  8.      print_r ($tab);
  9. } else {
  10.       echo "Erreur, nombre de rangs retournés : ".$num_result;
  11. }


et ceci ?


Message édité par T509 le 28-06-2004 à 16:11:12

---------------
fermez vos topics résolus avec le tag [Résolu] en fin de titre. Merci !
n°780417
T509
$job-&gt;GetJob(now)
Posté le 28-06-2004 à 13:24:54  profilanswer
 

Tu as moyen de faire la requête avec un outil d'administration de la base qui ressemble à PhpMyAdmin ? Sinon, va voir  
 
Si oui, cette requête renvoie quelquechose ?


Message édité par T509 le 28-06-2004 à 13:30:01

---------------
fermez vos topics résolus avec le tag [Résolu] en fin de titre. Merci !
n°780548
atic
Posté le 28-06-2004 à 14:50:14  profilanswer
 

je viens de tester le morceau de code et rien
mais la requete renvoie bien kelke chose vue kelle le faisait pour la base sous mysql
bon je me replonge dans le code et je vous tiens au courant
merci pour tout les gars ça fait plaisir

n°780563
Lord II
PIB2000
Posté le 28-06-2004 à 14:54:10  profilanswer
 

Tu vex dire que tu n'as pas testé ta requète sous le nouveau SGBD ???
 
Attention, il peut y avoir de petites différences d'un SGBD à un autre


---------------
La bave du crapaud n'empèche pas la caravane de passer .
n°780568
T509
$job-&gt;GetJob(now)
Posté le 28-06-2004 à 14:55:28  profilanswer
 

C'est pour cela que je te propose de tester la requête avec un outil d'administration de base comme indiqué 2 posts plus haut


Message édité par T509 le 28-06-2004 à 14:55:57

---------------
fermez vos topics résolus avec le tag [Résolu] en fin de titre. Merci !
n°780593
atic
Posté le 28-06-2004 à 15:10:45  profilanswer
 

c bon jai db tools manager
et ca marche impec
donc c'est ce ke je pensais je dois avoir une betise dans mon code
de là a dire koi...

n°780658
atic
Posté le 28-06-2004 à 16:07:58  profilanswer
 

maintenant ca me renvoie le message d'erreur
Erreur nonmbre de rang retourné
ça veut dire que la requete ne marche pas?

n°780663
T509
$job-&gt;GetJob(now)
Posté le 28-06-2004 à 16:10:13  profilanswer
 

avce quel code source ?


---------------
fermez vos topics résolus avec le tag [Résolu] en fin de titre. Merci !
n°780664
atic
Posté le 28-06-2004 à 16:11:52  profilanswer
 

pardon avec le tien

n°780668
Lord II
PIB2000
Posté le 28-06-2004 à 16:12:12  profilanswer
 

atic a écrit :


ça veut dire que la requete ne marche pas?


 
Oui, ou que celle-ci ne renvoie aucun résultat
 
A tout hasard, fait unb echo de la requete avant execution ,pour voir si celle ci est correcte


---------------
La bave du crapaud n'empèche pas la caravane de passer .
n°780685
atic
Posté le 28-06-2004 à 16:26:04  profilanswer
 

ben la requete est correcte mais kan je fais echo $ou ça ne m'affiche meme pas d'identifiant ou koi ke ce soit..

n°780694
Lord II
PIB2000
Posté le 28-06-2004 à 16:30:42  profilanswer
 

tu es sur que $tbl contient bien la table,  
 
utilise également la fonction pg_last_error après l'execution de la requète car si le résultat est vide c'est qu'il y a un souci dans l'execution et tu peux le voir via pg_last_error


Message édité par Lord II le 28-06-2004 à 16:31:08

---------------
La bave du crapaud n'empèche pas la caravane de passer .
n°780700
atic
Posté le 28-06-2004 à 16:34:41  profilanswer
 

sur et certain car kan je fais echo $qr ca affiche show columns from imrimante ki est la table que jai choisi

n°780705
Lord II
PIB2000
Posté le 28-06-2004 à 16:38:46  profilanswer
 

ok pour la requete, mais y a t-il un message d'erreur via pg_last_error


---------------
La bave du crapaud n'empèche pas la caravane de passer .
n°780713
atic
Posté le 28-06-2004 à 16:46:03  profilanswer
 

ben rien je fais un pg_last_error() juste apres la requete qr
et ca donne rien
??

n°780715
Lord II
PIB2000
Posté le 28-06-2004 à 16:50:11  profilanswer
 

donc il ne doit pas y avoir d'erreur, et la requete s'éxécute bien.
 
Ensuite il faut que tu testes le retour de pg_num_rows, et ainsi de suite pour voir où le problème se situe


---------------
La bave du crapaud n'empèche pas la caravane de passer .
n°780722
atic
Posté le 28-06-2004 à 16:56:59  profilanswer
 

ça n'affiche strictement rien
bon j'arrete pour aujourd'hui
jreviens dessus demain  
a+ et merci encore

n°780750
T509
$job-&gt;GetJob(now)
Posté le 28-06-2004 à 17:12:21  profilanswer
 

Code :
  1. $qr="SHOW COLUMNS FROM $tb";
  2. echo "requete : ".$qr."<br>";
  3. //faisons la requête
  4. $ou = pg_query($conn,$qr) or die("erreur de requête" );
  5. $num_result = pg_num_rows($ou);
  6. //recup des erreurs éventuelles
  7. echo "erreur sur connection : ".pg_last_error($conn)."<br>";
  8. echo "erreur sur requête : ".pg_result_error_field($ou, PGSQL_DIAG_SQLSTATE)."<br>";
  9. echo "Num de rangs seléctionnés : ".$num_result."<br>";
  10. //traitement du résultat
  11. if ($num_result > 0) {
  12.      for($i = 0; $i < $num_result ; $i++){
  13.        $tab[] = pg_fetch_array($ou);
  14.      }
  15.      print_r ($tab);
  16. } else {
  17.       echo "Erreur, nombre de rangs retournés inferieur à 0";
  18. }


et ceci ?


Message édité par T509 le 28-06-2004 à 18:03:09

---------------
fermez vos topics résolus avec le tag [Résolu] en fin de titre. Merci !
n°781136
atic
Posté le 29-06-2004 à 09:40:42  profilanswer
 

alors avec ce dernier code l'erreur vient de la requete
ça m'affiche bien requete SHOW COLUMNS FROM imprimante
mais juste en dessous j'ai le message d'erreur  
erreur de requ(caractere chinois)mais j'ai changé le code en mettant la fonction pg_result_error a la place de pg_result_error_field
ça vous dit quelque chose??

n°781221
T509
$job-&gt;GetJob(now)
Posté le 29-06-2004 à 10:59:26  profilanswer
 

donne nous les messages d'erreurs


---------------
fermez vos topics résolus avec le tag [Résolu] en fin de titre. Merci !
n°781302
atic
Posté le 29-06-2004 à 11:46:33  profilanswer
 

non mais le pb c'est que ya pas de messages d'erreurs
je me suis rendu compte aprs que "erreue de requete" s'affiche obligatoirement
pg_resullt_error prend bien les memes arguments que pg_result_error_field??

n°781310
T509
$job-&gt;GetJob(now)
Posté le 29-06-2004 à 11:50:39  profilanswer
 

Vérifie dans la doc
 
SI tu a "erreur de requête", il ne va pas plus loin de toute façon à cause de la commande die()
 
Est tu sûr de l'ouverture de la connexion avec la base ?
Est ce que $conn est affecté ?


---------------
fermez vos topics résolus avec le tag [Résolu] en fin de titre. Merci !
n°781317
atic
Posté le 29-06-2004 à 11:56:01  profilanswer
 

sur et certain c'est ce que j'ai vérifié en premier quand j'ai vu le message d'erreur
en fait ds mon code la connexion $dbl
 
 
 
$dbl = ADONewConnection('postgres7');
//$dbl->debug = true;
$dbl->Connect($hn,$un,$pw,$db);  
 
mais j'ai l'impression que le pb vient malgré tout de là

n°781326
T509
$job-&gt;GetJob(now)
Posté le 29-06-2004 à 12:03:23  profilanswer
 

Pour te connecter à ta base, utilise la commande pg_connect()
 
Ta variable $conn n'a pas l'air d'être affectée. C'est donc normal que cela ne marche pas.
 
Tu devrais lire quelques tutos concernant la récup d'infos en BDD. Va voir sur phpdebutant.org ce sera utile. Ces tutos sont basés sur MySQL, mais le principe reste le même. Il faut que tu acquiers les bases.


---------------
fermez vos topics résolus avec le tag [Résolu] en fin de titre. Merci !
mood
Publicité
Posté le   profilanswer
 

 Page :   1  2
Page Précédente

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

  simplifier ce code

 

Sujets relatifs
requete sql mise à jour dans code vbPb de code avec Mozilla/Firefox (alors qu'avec IE => OK)
[Access/VBA] Lancer du code au démarrage puis fermer la base.Executer du code compilé...
[HTML] Quel code pour ouvrir une fenetre d une certaine taille ?Impression de code
Intéret des commentaires dans le codeouverture formulaire et continuer execution du code
simplifier une ligne de code ASP[PHP & logique] Simplifier un morceau de code
Plus de sujets relatifs à : simplifier ce code


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