simplifier ce code - PHP - Programmation
Marsh Posté le 28-06-2004 à 10:02:45
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
Marsh Posté le 28-06-2004 à 10:37:42
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.
Marsh Posté le 28-06-2004 à 10:39:00
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!
Marsh Posté le 28-06-2004 à 10:42:03
Je t'ai donné la solution !
Marsh Posté le 28-06-2004 à 10:47:40
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
Marsh Posté le 28-06-2004 à 11:03:41
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 !
Marsh Posté le 28-06-2004 à 11:21:48
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é
Marsh Posté le 28-06-2004 à 12:40:18
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!!
Marsh Posté le 28-06-2004 à 12:43:59
A quel niveau, cela ne fonctionne pas ?
Marsh Posté le 28-06-2004 à 12:47:01
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
Marsh Posté le 28-06-2004 à 12:51:02
Premièrement, tu as des fonctions qui te permettent de vérifier le résultat de ta requètes :
Code :
|
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.
Marsh Posté le 28-06-2004 à 12:55:16
atic a écrit : voila ce que jai fais mais qui ne marche pas |
essaie ce code :
Code :
|
ensuite dis nous ce que tu obtiens
Marsh Posté le 28-06-2004 à 12:57:51
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?
Marsh Posté le 28-06-2004 à 13:05:00
T509 je n'obtiens rien avec ton code
rien ne s'affiche
c'est désolant
Marsh Posté le 28-06-2004 à 13:12:53
Ta requète renvoir t'elle quelque chose ??
Marsh Posté le 28-06-2004 à 13:19:12
Code :
|
et ceci ?
Marsh Posté le 28-06-2004 à 13:24:54
Tu as moyen de faire la requête avec un outil d'administration de la base qui ressemble à PhpMyAdmin ? Sinon, va voir là
Si oui, cette requête renvoie quelquechose ?
Marsh Posté le 28-06-2004 à 14:50:14
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
Marsh Posté le 28-06-2004 à 14:54:10
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
Marsh Posté le 28-06-2004 à 14:55:28
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
Marsh Posté le 28-06-2004 à 15:10:45
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...
Marsh Posté le 28-06-2004 à 16:07:58
maintenant ca me renvoie le message d'erreur
Erreur nonmbre de rang retourné
ça veut dire que la requete ne marche pas?
Marsh Posté le 28-06-2004 à 16:10:13
avce quel code source ?
Marsh Posté le 28-06-2004 à 16:12:12
atic a écrit : |
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
Marsh Posté le 28-06-2004 à 16:26:04
ben la requete est correcte mais kan je fais echo $ou ça ne m'affiche meme pas d'identifiant ou koi ke ce soit..
Marsh Posté le 28-06-2004 à 16:30:42
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
Marsh Posté le 28-06-2004 à 16:34:41
sur et certain car kan je fais echo $qr ca affiche show columns from imrimante ki est la table que jai choisi
Marsh Posté le 28-06-2004 à 16:38:46
ok pour la requete, mais y a t-il un message d'erreur via pg_last_error
Marsh Posté le 28-06-2004 à 16:46:03
ben rien je fais un pg_last_error() juste apres la requete qr
et ca donne rien
??
Marsh Posté le 28-06-2004 à 16:50:11
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
Marsh Posté le 28-06-2004 à 16:56:59
ça n'affiche strictement rien
bon j'arrete pour aujourd'hui
jreviens dessus demain
a+ et merci encore
Marsh Posté le 28-06-2004 à 17:12:21
Code :
|
et ceci ?
Marsh Posté le 29-06-2004 à 09:40:42
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??
Marsh Posté le 29-06-2004 à 10:59:26
donne nous les messages d'erreurs
Marsh Posté le 29-06-2004 à 11:46:33
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??
Marsh Posté le 29-06-2004 à 11:50:39
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é ?
Marsh Posté le 29-06-2004 à 11:56:01
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à
Marsh Posté le 29-06-2004 à 12:03:23
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.
Marsh Posté le 28-06-2004 à 09:58:53
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