Je me met au PHP... aie!

j'ai oubliée de préciser que je ne vous envoyé qu'un extrait du code :rose: , dans mon .php il y avait toute une partie où je demandais d'afficher un tableau .
Je pris ce matin un nouvel exercice (tiré d'un bouquin) où la il affiche une message de réussite si l'on est bien connecté, et bien TOUJOURS UNE BELLE PAGE BLANCHE !!!!

code :<html>
<head>
<title> Listing 11.1 Ouverture d'une connexion à une base de données </title>
</head>
<body>
<div>
<?php
$host="localhost";
$port="8889";
$utilisateur="root";
$mdpasse="root";
$bdd="URL";
$lien = @mysql-connect($host,$port,$utilisateur,$mdpasse );
if (! $lien){
die("impossible de se connecter à Mysql: ".mysql_error();
}
print "<h2> Connexion réussie au serveur </h2> \n\n";
@mysql_select_db($bdd)
or die ("Impossible d'ouvrir $bdd : ".mysql_error() );
print "La base de données a été sélectionnée \"$bdd\"<br/>\n";
mysql_close ($lien);
?>
</div>
</body>
</html>
Est ce vous voyez un soucis ??? J'ai ajouté dans les variable la variable $port, mais même en changeant ça rien à faire , alors que je vous rappelle que COCOA lui se connecte :eek: atchao
 
Thalyla,
si tu veux que l'on t'aide, répond aux questions que l'on te pose ...:rolleyes:

----------------
je résume :
1 - tu tapes <? echo'bonjour' ?>, et cela fonctionne bien. il t'affiche bonjour... donc la liaison avec apache fonctionne
2 - sur @mysql-connect($host,$port,$utilisateur,$mdpasse );
if (! $lien){die("impossible de se connecter à Mysql: ".mysql_error();

il me semble que le @ est de trop ... et tu peux simplifier ta requête en :
$link = mysql_connect($host,$utilisateur,$mdpasse) or die ("impossible de se connecter à mysql ".mysql_error());
echo 'connexion réussie';

Fait ça, et dis nous ce qui s'affiche (ou pas) ...
 
effectivement après test j'ai bien le message que s'affiche connexion réussie... le problème s'est qu'il saffiche même si je vire la fonction connection de la requête :mouais:
En fait il ne se connecte pas et fais seulement apparaitre la fonction echo (dommage, cela ma presque remonté le moral !!!!) ;)
 
thalyla a dit:
effectivement après test j'ai bien le message que s'affiche connexion réussie... le problème s'est qu'il saffiche même si je vire la fonction connection de la requête :mouais:
En fait il ne se connecte pas et fais seulement apparaitre la fonction echo (dommage, cela ma presque remonté le moral !!!!) ;)

Est-ce que par hasard tu aurais un "include" ou un "require" qui traine dans le haut de ta page (au tout début) ?
 
1) Dans l'exemple ci-dessus, le echo s'affichera que la connexion à la base de données soit établie ou non.

2) Le connect or die n'est rien d'autre qu'un try/catch, donc s'il n'y a pas de message d'erreur (il n'y en a pas si la page reste blanche), c'est que la connexion est établie.

3) Le logiciel s'appelle CocoaMySQL, pas COCOA.

4) C'est un peu rapide de déduire que la connexion à la base de données ne fonctionne pas si l'on a même pas essayé de récupérer des données...

Crée une table "test" avec 2 champs, un "prenom" et l'autre "nom".
Crée une entrée avec prenom "martin", nom "dupont".

Puis:
Bloc de code:
$sql = "SELECT * FROM test WHERE prenom='martin'";
$req = $req = mysql_query($sql) or die("Erreur SQL: <br />".mysql_error());
$data = mysql_fetch_assoc($req);
echo 'Le nom de martin est: '.$data['nom'];

Si ça affiche dupont c'est bon, sinon en effet il y a un problème.
 
Quand je teste je demande de récupérer des données sur ma base, mais je n'ai pas mentionné tout le code qui demande l'affichage pour ne pas encombrer le forum. Je vais essayer de faire ton test m ais je ne sais pas comment je peux récupérer ton code. je ne vois pas de pièce jointe ??? :rose: :rose: :rose:
 
Anabys a dit:
...
4) C'est un peu rapide de déduire que la connexion à la base de données ne fonctionne pas si l'on a même pas essayé de récupérer des données...
Non, contrairement à ce que tu dis, l'initialisation d'une connexion est une chose, la récupération des données en est une autre. Avant toute chose, il faut savoir si la connexion est acceptée par Mysql. Ca ne sert strictement à rien de vouloir faire une requête si la connexion n'est pas OK...:rolleyes:

C'est une question de méthode... avec la requête que je propose, il est possible de savoir si la connexion s'initie. Si la réponse est négative (affichage du mysql_error), le problème vient de là. Si la réponse est positive, il est possible de faire un select (étant entendu qu'une table existe) et de demander l'affichage du résultat.

Mais bon chacun sa méthode de débogage ...;)
 
Oui bah basiquement c'est que j'ai dit au point 2) de ma réponse...

Et je maintiens qu'il n'est pas possible de déduire que la connexion n'est pas établie du fait que la page reste blanche, dès lors qu'il n'a pas été vérifié qu'il y avait des données à afficher.
 
Anabys a dit:
Et je maintiens qu'il n'est pas possible de déduire que la connexion n'est pas établie du fait que la page reste blanche, dès lors qu'il n'a pas été vérifié qu'il y avait des données à afficher.

Ca n'est pas non plus ce que je dis... je dis simplement qu'il ne sert à rien de vouloir afficher un requête, si l'on à pas pris soin de vérifier si une connexion était initiée. Si tu demandes l'affichage d'un requête, comment savoir si l'erreur provient de la connexion SQL, de l'accès à la base de données ou encore du Select... trois possibilités quand même.

Mais dans un cadre plus pédagogique et pour répondre aux problèmes de Thalyla, il est préférable de conseiller la passage d'un paramètre pour chaque requête. Dans le cas présent, un paramètre qui vérifie cette connexion et renvoi un affichage en ce sens (ex: "connexion effectuée")...

Pour nous cela peut paraître une évidence, mais pour quelqu'un qui débute en php/sql, il est bon de lui présenter une démarche constructive qui lui permette d'identifier plus facilement ces erreurs. Ne crois-tu pas ?;)
 
bon j'ai un début d'affichage avec safari
Bloc de code:
 <html><body>
<?php
$host="localhost";
$utilisateur="root";
$mdpasse="root";
$bdd="test";
$link = mysql_connect($host,$utilisateur,$mdpasse) or die ("impossible de se connecter à mysql ".mysql_error());
echo "connexion réussie <br/>\n";
mysql_select_db ($bdd)
or die ("impossible de se connecter $bdd: ".mysql_error());
print "La base de donnée a été selectionnée \"$bdd\"<br/>\n";
$resultat=mysql_query("SELECT*FROM personnel where PER_PRENOM='Marc'");
$nomb_lignes=mysql_num_rows ($resultat);
print "<p> $nomb_lignes marc ont ajouté des données</p>\n";
?>
</body></html>
par contre avec internet explorer il faut que je que ma conexion à internet soit active sinon il m'affiche "le chargement de "accès à l'url : http://localhost:8888/monfichier.php" a echoué"
donc je continue avec safari, mais ce n'est pas clair !!! :hein:
Sachant que les codes que je teste sont sur PC et le navigateur firefox cela peut engendrer des erreurs ???
a suivre et merci de votre patience

:zen:
 
Bon alors j'ai rien, mais alors rien suivit de la discussion ! J'arrive comme un mort dans la soupe, complétement à l'improviste... genre skouateur. C'est juste histoire de poster un message et de m'occuper :D

Mais j'ai quand même un ptit truc à dire pour aider : Si on touche que dalle dans les utilisateurs système, l'utilisateur privilégié qui à absolument tous les droit c'est belle et bien ROOT ($utilisateur="root";), mais cet utilisateur magic... n'a pas de mot de passe (sauf modification). Donc à moins qu'il y ait une raison, la variable $mdpasse n'est pas $mdpasse="root"; mais devrait être $mdpasse=""; .

Enfin, voilà ce que je peux dire... ah oui ! Et aussi : BONNE NUIT ;)


Think... simply think !

Kasom
 
Oui fred je suis d'accord, mais:
- son code est clean
- la page reste blanche: donc le "or die(message)" n'est pas généré, donc la connexion se fait bien
- donc => c'est un problème, soit dans la récupération des données, soit dans leur affichage.

Si avec CocoaMySQL cela fonctionne, on peut en déduire que le serveur fonctionne, et que les tables ne sont à priori par corrompues.

@thalyla >
InternetExplorer est une saleté, il ne fait rien correctement. Si ça fonctionne avec Safari, c'est que ça fonctionne. En outre, tu n'as pas à te préoccuper du changement de plateforme (Mac/Win), ni de navigateur (Safari/Firefox), puisque le code PHP est exécuté par le serveur. Le navigateur n'intervient pas là dedans. En revanche, quand tu fait un echo ou un print, là il faut que le code XHTML soit compatible avec le navigateur, puisque c'est lui qui l'affichera.
 
Anabys a dit:
Oui fred je suis d'accord, mais:
- son code est clean
- la page reste blanche: donc le "or die(message)" n'est pas généré, donc la connexion se fait bien
- donc => c'est un problème, soit dans la récupération des données, soit dans leur affichage.

Si avec CocoaMySQL cela fonctionne, on peut en déduire que le serveur fonctionne, et que les tables ne sont à priori par corrompues.

@thalyla >
InternetExplorer est une saleté, il ne fait rien correctement. Si ça fonctionne avec Safari, c'est que ça fonctionne. En outre, tu n'as pas à te préoccuper du changement de plateforme (Mac/Win), ni de navigateur (Safari/Firefox), puisque le code PHP est exécuté par le serveur. Le navigateur n'intervient pas là dedans. En revanche, quand tu fait un echo ou un print, là il faut que le code XHTML soit compatible avec le navigateur, puisque c'est lui qui l'affichera.


je ne sais même plus quel code elle utilise réellement ?
 
thalyla a dit:
Ok j'ai tout compris : le laisse tomber cette SALETÉ d'internet explorer qui interprète MAL ce que je lui dis ;) et je continue de collaborer avec Safari pour la suite de mes codes !!!
:up:

:up: bonne ID :D
 
Aller, pour en rajouter une couche, spécialement parce ue ce topic ma bien plû;

Je voudrais savoir qu'est ce que je peux faire avec une application tel MacSQL3.... et comment? et pourquoi? et...? je peux gérer ça avec un serveur?

J'ai un joli petit bouquin de plusieur centaine de pages sur le code SQL, qu'"ils" utitlisent sans cesse avec Acess de windaube, et moi je voulais savoir comment je pouvait utilisé ce code: s'insére il partout, portabilité parfaite, par exemple, avec le code SQL puis-je appelé une base MySQL avec du code SQL dans un script en Java, (et l'applescript permet aussi de tel appels?)

Peut on interoger une base filemaker pro avec du code SQL...
En fait toute les questions sur le mystérieux SQL, car au fond PHP permet sur le net toutes ces interogations.

T.