yes tu as pas cliqué sur ta base de donnée racspadb
tu vois bien en haut qu'il te mets bien que serveur localhost
tu dois cliquer sur racspadb
tu auras donc serveur localhost : racspadb
ensuite tu pourras faire ton import
-----
yes tu as pas cliqué sur ta base de donnée racspadb
tu vois bien en haut qu'il te mets bien que serveur localhost
tu dois cliquer sur racspadb
tu auras donc serveur localhost : racspadb
ensuite tu pourras faire ton import
clique d'abord sur ta base
tu auras ta base selectionnée
si tu le fais pas pour lui tu as pas selectionner ta base
si tu le fais pas tu peux entrer le code suivant
Code:-- -- Database: `mabase` -- -- -------------------------------------------------------- -- -- Table structure for table `experts` -- USE racspadb; CREATE TABLE IF NOT EXISTS `experts` ( `EXPREF` int( 11 ) NOT NULL AUTO_INCREMENT , `Person Prefix` varchar( 50 ) DEFAULT NULL , `Last Name` varchar( 50 ) DEFAULT NULL , `First Name` varchar( 50 ) DEFAULT NULL , `Email` varchar( 50 ) DEFAULT NULL , `Address` varchar( 50 ) DEFAULT NULL , `Zip code` varchar( 50 ) DEFAULT NULL , `City` varchar( 50 ) DEFAULT NULL , `Country` varchar( 50 ) DEFAULT NULL , `Phone` varchar( 50 ) DEFAULT '+', `Phone Secondary` varchar( 50 ) DEFAULT '+', `Fax` varchar( 50 ) DEFAULT '+', `Web site` varchar( 50 ) DEFAULT NULL , `Institution / Organisation` varchar( 50 ) DEFAULT NULL , `Department` varchar( 50 ) DEFAULT NULL , `Position` varchar( 50 ) DEFAULT NULL , `Main publication(s)` varchar( 50 ) DEFAULT NULL , PRIMARY KEY ( `EXPREF` ) ) ENGINE = MYISAM DEFAULT CHARSET = latin1 AUTO_INCREMENT =125;
Je suis certain qu'il ne te reste pas grand-chose à faire. Je n'ai mis en ligne qu'une seule requête parmi celles que j'ai trouvées dans ta base ; pour moi l'extraction est identique à la requête sql d'Access. Je l'ai simplifiée, bien sûr, mais les jointures sont les mêmes.
Jette un cil ici.
BIEN, je trouve que ça a été assez simple pour toi! et puis-je avoir copie des fichiers html avec lesquels tu as travaillé et monté ces pages ??
Comme je ne suis pas certain que tu aies pu créer ta base de données sous PhpMyAdmin, je reprends.
- tu télécharges le fichier dump.sql qui se trouve en ici.
- tu vas sous PhpMyAdmin (celui qui se trouve sur le serveur distant et non pas sur ton serveur local).
- comme te l'a dit Ventilopomme, tu effectues un double clic sur racspadb(0) dans le menu de gauche
- tu cliques sur Import
- Sur la ligne Emplacement du fichier texte, tu entres le chemin complet du fichier dump.sql sur ton disque dur ou tu passes par le bouton "Parcourir"
- tu cliques sur le bouton "Exécuter" en bas à droite et tu attends la fin de l'importation.
Le formulaire HTML ci-dessous est un exemple de requête tout simple qui passe les références des spécialités à un programme en PHP chargé d'extraire de la table des experts ceux qui maîtrisent la spécialité choisie dans la liste déroulante.
Le Formulaire HTML de la requête :
Le programme d'extraction en PHP :Code:<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" /> <title>Document sans nom</title> </head> <body> <form id="form1" name="form1" method="post" action="traitement.php"> <label>Sélectionnez la référence d'une spécialité : <select name="expert" id="expert"> <option value="CORSH">CORSH</option> <option value="FALEL">FALEL</option> <option value="HYDPE">HYDPE</option> <option value="LARAU">LARAU</option> <option value="NUMTE">NUMTE</option> <option value="PANHA">PANHA</option> <option value="PELCR">PELCR</option> <option value="PELON">PELON</option> <option value="PHAAR">PHAAR</option> <option value="PHAPY">PHAPY</option> <option value="PHORO">PHORO</option> <option value="PUFMA">PUFMA</option> <option value="PUFYE">PUFYE</option> <option value="STEAL">STEAL</option> <option value="STEBE">STEBE</option> <option value="STESA">STESA</option> </select> </label> <label> <input type="submit" name="Submit" value="Envoyer" /> </label> </form> </body> </html>
Tu noteras une chose importante pour la suite des opérations : les requêtes en Access-sql doivent être légèrement modifiées, car la syntaxe n'est pas tout à fait la même au niveau des jointures des tables (parenthèses) :Code:<?php $expert = $_POST["expert"]; $_HostName="Le nom de l'hôte de PhpMyAdmin"; $_Login="le nom d'utilisateur de PhpMyAdmin"; $_PassWord="le mot de passe de PhpMyAdmin"; $_BaseName="racspadb"; //CONNEXION A LA BASE $connexion=mysql_connect($_HostName, $_Login, $_PassWord); if (!$connexion): die("La connexion a échoué, vérifiez que le serveur MySQL fonctionne."); endif; //SELECTION DE LA BASE $selection_base = mysql_select_db($_BaseName); if (!$selection_base): die ("La sélection de la base a échoué ; vérifiez que la base existe et que son nom est correct."); endif; $sql="SELECT * FROM experts INNER JOIN relexpspe ON experts.EXPREF = relexpspe.EXPREF INNER JOIN species ON species.SPEREF = relexpspe.SPEREF WHERE species.SPEREF='$expert'"; $requete = mysql_query($sql) or die ("Requête impossible"); $numRecords=mysql_num_rows($requete); if ($numRecords==0): echo "Cette requête n'a pas donné de résultat."; else: while ($ligne = mysql_fetch_array($requete)){ $Nom = $ligne["First Name"]; $Prenom = $ligne["Last Name"]; echo ("<BR>$Nom $Prenom"); } endif; mysql_close(); ?>
Requête originale en Access-sql :
Requête sous MySQL :Code:SELECT * FROM SPECIES INNER JOIN (EXPERTS INNER JOIN RELEXPSPE ON EXPERTS.EXPREF = RELEXPSPE.EXPREF) ON SPECIES.SPEREF = RELEXPSPE.SPEREF WHERE (((SPECIES.SPEREF)="HYDPE"));
Code:SELECT * FROM experts INNER JOIN relexpspe ON experts.EXPREF = relexpspe.EXPREF INNER JOIN species ON species.SPEREF = relexpspe.SPEREF WHERE species.SPEREF='HYDPE';
bonjour
la base mysql a été bien importée sans problèmes dès que j'avais comprit que je devais me placer dans ma base de données.
Et bien maintenant, t'as plus qu'à y mettre les doigts, les coudes et le reste. Enjoy !
le reste ?
tu as tout ce qu'il faut pour mettre en ligne un premier essai
dis le nous quand c'est fait !
là je vais essayer de travailler directement sur le serveur, pour que vous puissiez me suivre.$link = mysql_connect("localhost", "mysql_user", "mysql_password")
or die("Impossible de se connecter : " . mysql_error());
mysql_select_db($dbname);
alors pour cette partie, ma db étant: racspadb, j'ai le login et le mot de passe, mais comment spécifier son endroit ? étant que ce n'est plus localhost
bah ton serveur mysql a bien une adresse ip sur ton réseau ?
j'y accède à partir de http://doc.rac-spa.org/my
cette adresse me permet d'accèder à l'interface MySQL qui m'a été transmise par la société chez qui nous louons un serveur patagé
et au niveau de l'interface myadmin il ne t'affiche rien
du style juste apres que tu te sois logué ?
MySQL
Serveur: 127.0.0.1 via TCP/IP
Version du serveur: 5.5.11
Version du protocole: 10
Utilisateur: root@localhost
Jeu de caractères pour MySQL: UTF-8 Unicode (utf8)
Ok, alors on reprend.
la page actuelle
je propose de commencer par les trois champs en bas, qui n’affichent aucune valeur.
donc, voici mon code:
je ne vois pas de raison pour qu'il n'aille pas rechercher les nom des lignes dans la base$requete="select scientific_name,speref from species";
$ok=mysql_query($requete,$link );
if ($ok){echo '';}
else {echo 'Impossible d\'exécuter cette requête...';}
$result = mysql_query($requete);
if ($result) {echo 'bien';}
else {echo'Invalid query: ' . mysql_error;
}
$requetegeo="select geo_area_en,georef from geographic_areas";
$resultgeo = mysql_query($requetegeo);
if ($resultgeo) {echo 'bien';}
else {echo'Invalid query: ' . mysql_error;
}
$requetesub="select sub_en,subref from subjects";
$resultsub = mysql_query($requetesub);
if ($resultsub) {echo 'bien';}
else {echo'Invalid query: ' . mysql_error;
}
$requeteexp="select scientific_name,speref from species";
$resultexp = mysql_query($requeteexp);
if ($resultexp) {echo 'bien';}
else {echo'Invalid query: ' . mysql_error;
}
?>
<form action="specie.php" method="post">
<select name="choix">
<?php
while ($row = mysql_fetch_array($result, MYSQL_ASSOC))
{
echo "<option value=\"".$row['speref']."\">".$row['scientific_name']."</option>";
}
?>
</select>
<input type="submit" value="espece">
</form>
<form action="experts.php" method="POST">
<select name="choixexp">
<?php
while ($rowgeo = mysql_fetch_assoc($resultgeo)) {
echo "<option value=\"".$rowgeo['georef']."\">".$rowgeo['geoarea french']."</option>";
}
?>
</select>
<select name="choixsub">
<?php
while ($rowsub = mysql_fetch_assoc($resultsub)) {
echo "<option value='".$rowsub['subref']."'>".$rowgeo['subject french']."</option>";
}
?>
</select>
<select name="choixspe">
<?php
while ($rowspe = mysql_fetch_assoc($resultspe)) {
echo "<option value='".$rowgeo['speref']."'>".$rowgeo['Scientific name']."</option>";
}
?>
</select>
<input type="submit" value="run">
</form>
<?php
mysql_close($link);
si si il va bien chercher si tu regardes le code source genere de la page php
est ce que ceux sont les bons noms de colonnes pour subject french etc
et pour le menu deroulant de species c resultspe au lieu de resultexp
<select name="choixexp">
<option value="ADREATI"></option><option value="ALGE"></option><option value="ATLANTI"></option><option value="CENTAFR"></option><option value="CENTMED"></option><option value="CROA"></option><option value="CYPR"></option><option value="EASTAFR"></option><option value="EASTMED"></option><option value="EASTPAL"></option><option value="GREE"></option><option value="ITAL"></option><option value="LIBA"></option><option value="LIBY"></option><option value="MADA"></option><option value="MALT"></option><option value="MARO"></option><option value="MAUR"></option><option value="MEDITERR"></option><option value="MONT"></option><option value="NORTAFR"></option><option value="PORT"></option><option value="ROMA"></option><option value="SARD"></option><option value="SPAI"></option><option value="TUNI"></option><option value="TURK"></option><option value="WESTAFR"></option><option value="WESTMED"></option><option value="WESTPAL"></option></select>
<select name="choixsub">
<option value='ANAPHY'></option><option value='AWAEDU'></option><option value='BREECO'></option><option value='CONSEV'></option><option value='FEEECO'></option><option value='GENETI'></option><option value='LEGISL'></option><option value='MANAGE'></option><option value='MIGRAT'></option><option value='RINTEL'></option><option value='SURDYN'></option><option value='TAXCLAS'></option><option value='THREAT'></option></select>
<select name="choixspe">
</select>
d'accord, mais dans ce cas, sur la page que j'ai mentionné, et qui est donc accessible, pourquoi ces noms ne s'affichent ils pas ?
car en HTML
<option value="ATLANTI"></option>
value correspond a la valeur de l'option
et ce qui a entre <option..> et </option> c'est le texte qui doit etre affiché
j'étais dessus, je vérifiais une à une les colonnes!
loool
en tous cas merci, la page affiche maintenant les colonnes voulues
bien, maintenant, nous allons aborder la page species.php
pour que cette page nous affiche le reste des colonnes correspondants à la valeur de la colonne scientific_name choisie dans la première page...
je pense que tu veux parler de specie.php
tu peux partir de la premiere page
et remplacer la requete par
$requete="select * from species where speref='".$_REQUEST['choix']."'";
$_REQUEST['choix'] contient la valeur du parametre choix du formulaire
ensuite tu fais ton
$ok=mysql_query($requete,$link );
if ($ok){echo '';}
else {echo 'Impossible d\'exécuter cette requête...';}
$row = mysql_fetch_array($result, MYSQL_ASSOC);
Ensuite tu construis ta page html en html et tu inclus des <?php echo $row['nomcolonne']; ?>
ah oui il est preferable d'utiliser exit pour sortir du script
http://php.net/manual/fr/function.exit.php
Bon, nous avons la requete qui va chercher la valeur de la colonne french_name dans la table species à la clé primaire speref correspondant au résultat de la ??? $_REQUEST['choix'] de la première page.
ensuite, on définit un premier row qui va afficher la valeur du scientific-name choisit dans la première page (j'espère qu'un row n'est pas une liste de choix)
maintenant, je suis sencé préparer les rows qui vont aller chercher les valeurs des autres colonne de la meme speref, n'est ce pas ?
<?php
$link = mysql_connect('localhost', 'racspausr', '***')
or die('Impossible de se connecter : ' . mysql_error());
mysql_select_db("racspadb");
$requete="select french_name from species where speref='".$_REQUEST['choix']."'";
$ok=mysql_query($requete,$link );
if ($ok){echo 'bien';}
else {echo 'Impossible d\'exécuter cette requête...';}
$row = mysql_fetch_array($result, MYSQL_ASSOC);
?>
non tu fais
$requete="select * from species where speref='".$_REQUEST['choix']."'";
le select * te recupere toutes les colonnes
j'ai fait une tentative avecmais ça ne donne rien...
$row = mysql_fetch_array($result, MYSQL_ASSOC);
?>
<?php echo $row['french_name']; ?>
</body>
trouvé
$ok=mysql_query($requete,$link );
$row = mysql_fetch_array($result, MYSQL_ASSOC);
moi j'aurais mis
$row = mysql_fetch_array($ok, MYSQL_ASSOC);
puisque $ok contient le resultat de la requete
je pense qu'à partir de là je vais mettre les autres rows, mais juste avant que je le fasse, car je pense qu'on reprendra ça à partir de demain, j'aimerais bien, si celà ne vous dérange pas que:
vous m'expliquiez dans notre langue ça:mais que je puisse vous comprendre hein, molo molo avec moi! looool$requete="select french_name from species where speref='".$_REQUEST['choix']."'";
$ok=mysql_query($requete,$link );
if ($ok){echo 'bien';}
else {echo 'Impossible d\'exécuter cette requête...';}
$row = mysql_fetch_array($ok, MYSQL_ASSOC);
et puis est ce que l'agorithme logique php diffère de l'algorithme des autres languages ? parceque là mon seul problème qui reste c'est de comprendre la logique php. je n'ai pas de problèmes avec ses commandes ou autre, ça je pourrais bien les saisir d'un coup, si seulement j'arriveais à saisir cette logique php. il faut vraiment que je bouquine! lool
merci bcp
quand tu vas sur une page php avec un navigateur
le serveur genere la page html via le code php
envoie le source html genere au navigateur
l'utilisateur renseigne formulaire et valide (et renvoie a une autre page php eventuellement )
la page php traite les informations recues et ainsi de suite
tu trouveras ce dessin
dans
http://www.apprendre-php.com/tutorie...ngage-php.html
Construit la chaine de caractere requeteCode:$requete="select french_name from species where speref='".$_REQUEST['choix']."'";
$_REQUEST['choix'] : contient le contenu du parametre choix transmis par le formulaire
envoie la requete au serveur mysqlCode:$ok=mysql_query($requete,$link );
il l'execute et renvoie le resultat dans $ok
si il y a eu un probleme $ok n'est pas valorisée donc on affichera impossible etc ...Code:if ($ok){echo 'bien';} else {echo 'Impossible d\'exécuter cette requête...';}
recupere une ligne du curseur et mets cela dans un tableau associatifCode:$row = mysql_fetch_array($ok, MYSQL_ASSOC);
Bon, tout s'affiche correctement dans la page species (correctement looool autant que possible, j'ai toutes les rows
alors, on passe à la page experts
il te suffit de faire un copier coller intelligent
je te conseille ce site
http://www.alsacreations.com/
<html>
<head>
</head>
<body>
<?php
$link = mysql_connect("localhost", "mysql_user", "mysql_password")
or die("Impossible de se connecter : " . mysql_error());
mysql_select_db($dbname);
if (isset($_REQUEST['choixsub'])
{
$req1 = "select expref from relexpsub where subref=".$_REQUEST['choixsub'];
}
else
{
$req1 = "select expref from experts";
}
if (isset($_REQUEST['choixgeo'])
{
$req2 = "select expref from relexpgeo where georef=".$_REQUEST['choixgeo'];
}
else
{
$req2 = "select expref from experts";
}
if (isset($_REQUEST['choixspe'])
{
$req3 = "select expref from relexpspe where speref=".$_REQUEST['choixspe'];
}
else
{
$req3 = "select expref from experts";
}
$requete="select d.* from (".$req1.") a,(".$req2.") b,(".$req3.") c,experts d where a.expref = b.expref and b.expref = c.expref and c.expref=d.expref";
$result = mysql_query($requete);
while ($row = mysql_fetch_assoc($result))
{
echo "<a href=\"expert.php?expref=".$ro w['expref']."\">".$row['expref']."</a>";
}
?>
</body>
</html>
c'est quoi la if (isset... ?
ton lien que tu m'as recommandé semble mort
non du tout il marche bien
http://www.alsacreations.com/tutoriels/
isset permet de savoir si une variable est definie ( différent de null)
http://php.net/manual/fr/function.isset.php
Bonjour
j'essaye de comprendre PHP en parallèle.
j'ai crée un fichier php où j'ai mit:
ça marchait parfaitement, mais j'ai vu que le $x++ figurait deux fois, alors je voulais comprendre un peu pourquoi et j'ai donc mit ça:$x=1; while ($x<=10) { if ($x == 7) { echo "division par 0"; $x++; continue; } $a = 1/($x-7); echo "$a<br>"; $x++; }
cela me semblais bien logique$x=1; while ($x<=10) { if ($x == 0) { echo "x=".$x " donc 1/x ne peut être calculé"; $x++; continue; } $a = 1/($x); echo "1/x="."$a<br>"; $x++; }
mais je ne comprend pas pourquoi ça n'affiche rien.
où serait l'erreur ?