bien que j'ai finit par comprendre le role de la première incrémentation $x++, je ne comprend toujours pas pourquoi mon exemple à moi ne fonctionne pas
-----
bien que j'ai finit par comprendre le role de la première incrémentation $x++, je ne comprend toujours pas pourquoi mon exemple à moi ne fonctionne pas
qu'est ce qui s'affiche pas ?Code:$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++; }
passe tu bien dans la boucle ?
trouvé bon le premier marche bien c'est sur
Mais le second j'aiCode:-0.16666666666667 -0.2 -0.25 -0.33333333333333 -0.5 -1 division par 01 0.5 0.33333333333333
il manquait donc bien un .Code:Parse error: syntax error, unexpected T_CONSTANT_ENCAPSED_STRING, expecting ',' or ';' in C:\Program Files\EasyPHP-5.3.6.0\www\essai.php on line 4
le résultatCode:$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++; }
Code:1/x=1 1/x=0.5 1/x=0.33333333333333 1/x=0.25 1/x=0.2 1/x=0.16666666666667 1/x=0.14285714285714 1/x=0.125 1/x=0.11111111111111 1/x=0.1
n'y aurait il pas un débogueur de php ?
tu lui donne le code , il s'arrète au point où ça bloque et te le notifie sur le code
normalement ton php devrait te le signaler mais tu peux developper sous netbeans ou eclipse ils possedent tous une extension php et un debugger .
Eclipse/php : http://www.eclipse.org/downloads/pac...pers/heliossr2
Netbeans http://netbeans.org/downloads/index.html
Bon, revenons à notre experts.php
bien que j'ai vérifié les nom des champs, la page n'affiche rien<?php
$link = mysql_connect("localhost", "racspausr", "DF%K4sd2")
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=\"experts.php?expref=".$r ow['expref']."\">".$row['expref']."</a>";
}
?>
y a quoi dans $dbname ?
un autre tours d'exemples:
dans cet exemple:
qui est bien fonctionnel, je ne comprend pas le truc ("affiche")<?php
$chaine = "Nombre de camions : ";
function ajoute_camion($mode='')
{
global $chaine;
static $nb=0;
$nb++; // on incrémente le nombre de camions
if($mode == "affiche")
{
echo $chaine.$nb; // on affiche le nombre de camions
}
}
ajoute_camion(); // nb == 1
ajoute_camion(); // nb == 2
ajoute_camion(); // nb == 3
ajoute_camion("affiche"); // affiche Nombre de camions : 4
?>
ce n'est pas une fonction, ce n'est pas un texte à afficher, c'est quoi alors ?
function ajoute_camion($mode='')
avec php tu peux definir des parametres par defaut pour les fonction
si l'appelant ne fournit aucun parametre alors il considere qu'il a eu dans $mode ''
ce qui se passe avec ajoute_camion();
ajoute_camion("affiche"); appelle ajoute_camion avec le parametre chaine de caracteres "affiche" et donc dans ce cas la le parametre $mode aura pour valeur "affiche"
explication sur les fonctions
http://www.commentcamarche.net/conte...p/phpfonc.php3
essaie plutot ce code
Code:<?php $link = mysql_connect("localhost", "racspausr", "DF%K4sd2") 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=".$row['expref']."\">".$row['expref']."</a>"; } ?>
Warning: mysql_fetch_assoc() expects parameter 1 to be resource, boolean given in F:\xampp\htdocs\data\experts.p hp on line 47où est l'erreur ?$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>";
le probleme vient de la requete
fait echo $requete; juste avant le résult
J'ai trouvé le probleme quand j'ai fait le code je pensais qu'on envoyait que les clefs etaient les ids des enregistrements
a chaque fois que tu as dans une requete un test en dur d'une colonne qui est une chaine de caractere il faut la mettre entre quotes
c'est ce que j'avais oublié
Code:<?php $link = mysql_connect("localhost", "racspausr", "DF%K4sd2") 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"; echo "requete = ".$requete; $result = mysql_query($requete); while ($row = mysql_fetch_assoc($result)) { echo "<a href=\"expert.php?expref=".$row['expref']."\">".$row['expref']."</a>"; } ?>
la colonne expref existe bien, j'ai vérifiérequete = select d.* from (select expref from relexpsub where subref='ANAPHY') a,(select expref from experts) b,(select expref from relexpspe where speref='CORSH') c,experts d where a.expref = b.expref and b.expref = c.expref and c.expref = d.expref
Notice: Undefined index: expref in F:\xampp\htdocs\data\experts.p hp on line 49
Notice: Undefined index: expref in F:\xampp\htdocs\data\experts.p hp on line 49
Notice: Undefined index: expref in F:\xampp\htdocs\data\experts.p hp on line 49
Notice: Undefined index: expref in F:\xampp\htdocs\data\experts.p hp on line 49
Notice: Undefined index: expref in F:\xampp\htdocs\data\experts.p hp on line 49
Notice: Undefined index: expref in F:\xampp\htdocs\data\experts.p hp on line 49
Notice: Undefined index: expref in F:\xampp\htdocs\data\experts.p hp on line 49
Notice: Undefined index: expref in F:\xampp\htdocs\data\experts.p hp on line 49
Notice: Undefined index: expref in F:\xampp\htdocs\data\experts.p hp on line 49
Notice: Undefined index: expref in F:\xampp\htdocs\data\experts.p hp on line 49
Notice: Undefined index: expref in F:\xampp\htdocs\data\experts.p hp on line 49
Notice: Undefined index: expref in F:\xampp\htdocs\data\experts.p hp on line 49
Notice: Undefined index: expref in F:\xampp\htdocs\data\experts.p hp on line 49
Notice: Undefined index: expref in F:\xampp\htdocs\data\experts.p hp on line 49
fais un print_r($row); juste avant l'echo dans la boucle while
Chez moi cette requête fonctionne parfaitement : 7 occurrences trouvées.
et au niveau de l'affichage tout se passe bien ?
j'ai trouvé
bon alors dans les noms de colonne toujours en minuscules et pas une en majuscule et les autres en minuscules
RésultatCode:<html><body><?php $link = mysql_connect("localhost", "root", "root") or die("Impossible de se connecter : " . mysql_error()); mysql_select_db("racspadb"); 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"; echo "requete = ".$requete; $result = mysql_query($requete); while ($row = mysql_fetch_assoc($result)) { print_r($row); echo "<a href=\"expert.php?expref=".$row['expref']."\">".$row['expref']."</a>"; } ?></body></html>
normal que $row['expref'] renvoie rienCode:requete = select d.* from (select expref from relexpsub where subref='ANAPHY') a,(select expref from experts) b,(select expref from relexpspe where speref='FALEL') c,experts d where a.expref = b.expref and b.expref = c.expref and c.expref = d.exprefArray ( [EXPREF] => 12 [Person Prefix] => Mr. [Last Name] => ESCRIBANO CÁNOVAS [First Name] => Fernando [Email] => Fernando.escribano@carm#mailto:Fernando.escribano@ [Address] => C/ CATEDRÁTICO EUGENIO ÚBEDA Nº 3, 3ª PLANTA [Zip code] => 30008 [City] => MURCIA [Country] => SPAIN [Phone] => +34 968 228449 [Phone Secondary] => +34 653 426904 [Fax] => +34 968 228922 [Web site] => www.carm.es#http://WWW.carm.es# [Institution / Organisation] => CONSEJERÍA DE INDUSTRIA Y MEDIO AMBIENTE [Department] => SERVICIO DE PROTECCIÓN Y CONSERVACIÓN [Position] => VETERINARY [Main publication(s)] => ) Notice: Undefined index: expref in C:\Program Files\EasyPHP-5.3.6.0\www\experts.php on line 42 Notice: Undefined index: expref in C:\Program Files\EasyPHP-5.3.6.0\www\experts.php on line 42 Array ( [EXPREF] => 32 [Person Prefix] => [Last Name] => JIMENEZ PEREZ [First Name] => Juan [Email] => jimenez_juaper@gva.es#mailto:jimenez_juaper@gva.es [Address] => Francesc Cubells, 7 [Zip code] => 46011 [City] => Valencia [Country] => SPAIN [Phone] => +34961973604 [Phone Secondary] => + [Fax] => +34961973877 [Web site] => www.cth.gva.es#http://WWW.cth.gva.es# [Institution / Organisation] => Generalitat Valenciana. Conselleria de Territori i [Department] => Dirección General de Gestión del Medio Natural [Position] => Head Officer of the Biodiversity Service [Main publication(s)] => - CASTILLA, A.M. & JIMENEZ, J. (1995). Relationsh ) Notice: Undefined index: expref in C:\Program Files\EasyPHP-5.3.6.0\www\experts.php on line 42 Notice: Undefined index: expref in C:\Program Files\EasyPHP-5.3.6.0\www\experts.php on line 42 Array ( [EXPREF] => 53 [Person Prefix] => [Last Name] => RISTOW [First Name] => Dietrich [Email] => dietrich.ristow@t-online.de#mailto:dietrich.ristow [Address] => Pappelstr. 35 [Zip code] => D-85579 [City] => Neubiberg [Country] => GERMANY [Phone] => +49-89-602768 [Phone Secondary] => + [Fax] => + [Web site] => [Institution / Organisation] => HOS BirdLife Greece [Department] => [Position] => [Main publication(s)] => - Series on the Biology of Cory’s Shearwater (15 p ) Notice: Undefined index: expref in C:\Program Files\EasyPHP-5.3.6.0\www\experts.php on line 42 Notice: Undefined index: expref in C:\Program Files\EasyPHP-5.3.6.0\www\experts.php on line 42 Array ( [EXPREF] => 65 [Person Prefix] => Mr. [Last Name] => WEBB [First Name] => Richard [Email] => Chairman@africanbirdclub.org#mailto:Chairman@afric [Address] => WELLBROOK COURT, GIRTON ROAD [Zip code] => CB3 0NA [City] => CAMBRIDGE [Country] => UK [Phone] => + [Phone Secondary] => + [Fax] => + [Web site] => http://www.africanbirdclub.org#http://www.africanb [Institution / Organisation] => AFRICAN BIRD CLUB [Department] => [Position] => CHAIRMAN [Main publication(s)] => - The Bulletin of the African Bird Club, produced ) Notice: Undefined index: expref in C:\Program Files\EasyPHP-5.3.6.0\www\experts.php on line 42 Notice: Undefined index: expref in C:\Program Files\EasyPHP-5.3.6.0\www\experts.php on line 42 Array ( [EXPREF] => 76 [Person Prefix] => Dr. [Last Name] => BADAMI [First Name] => Alberto [Email] => albertobadami@hotmail.com#mailto:albertobadami@hot [Address] => Via V. Publicola 4 sc.D [Zip code] => IT - 00174 [City] => Roma [Country] => ITALY [Phone] => + [Phone Secondary] => + [Fax] => + [Web site] => [Institution / Organisation] => LIPU / BirdLife Italy [Department] => [Position] => Field work researcher [Main publication(s)] => ) Notice: Undefined index: expref in C:\Program Files\EasyPHP-5.3.6.0\www\experts.php on line 42 Notice: Undefined index: expref in C:\Program Files\EasyPHP-5.3.6.0\www\experts.php on line 42
il s'attend à avoir
$row['EXPREF']
Rien à signaler de particulier. Le code suivant :
me donne :Code:$sql = "select d.* from (select expref from relexpsub where subref='ANAPHY') a, (select expref from experts) b, (select expref from relexpspe where speref='CORSH') c, experts d where a.expref = b.expref and b.expref = c.expref and c.expref = d.expref"; $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)){ echo ("<BR>$ligne[0] $ligne[1] $ligne[2] $ligne[3]"); } endif; mysql_close();
12 Mr. ESCRIBANO CÁNOVAS Fernando
13 CARBONERAS MALET Carles
29 Dr. HOUHAMDI Moussa
32 JIMENEZ PEREZ Juan
53 RISTOW Dietrich
62 TRIAY Rafel
65 Mr. WEBB Richard
j'ai un peu changé le code de la page de depart
et la page experts.phpCode:<html> <body> <?php $link = mysql_connect("localhost", "root", "root") or die("Impossible de se connecter : " . mysql_error()); mysql_select_db("racspadb"); $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; } $requetespe="select scientific_name,speref from species"; $resultspe = mysql_query($requetespe); if ($resultspe) {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"> <option value="$$$$" selected>Tous</option> <?php while ($rowgeo = mysql_fetch_assoc($resultgeo)) { echo "<option value=\"".$rowgeo['georef']."\">".$rowgeo['geo_area_en']."</option>"; } ?> </select> <select name="choixsub"> <option value="$$$$"selected >Tous</option> <?php while ($rowsub = mysql_fetch_assoc($resultsub)) { echo "<option value='".$rowsub['subref']."'>".$rowsub['sub_en']."</option>"; } ?> </select> <select name="choixspe"> <option value="$$$$" selected>Tous</option> <?php while ($rowspe = mysql_fetch_assoc($resultspe)) { echo "<option value='".$rowspe['speref']."'>".$rowspe['scientific_name']."</option>"; } ?> </select> <input type="submit" value="run"> </form> <?php mysql_close($link);
Code:<html><body><?php $link = mysql_connect("localhost", "root", "root") or die("Impossible de se connecter : " . mysql_error()); mysql_select_db("racspadb"); if (isset($_REQUEST['choixsub'])) { if ($_REQUEST['choixsub'] == "$$$$") $req1 = "select expref from experts"; else $req1 = "select expref from relexpsub where subref='".$_REQUEST['choixsub']."'"; } else { $req1 = "select expref from experts"; } if (isset($_REQUEST['choixgeo'])) { if ($_REQUEST['choixgeo'] == "$$$$") $req2 = "select expref from experts"; else $req2 = "select expref from relexpgeo where georef='".$_REQUEST['choixgeo']."'"; } else { $req2 = "select expref from experts"; } if (isset($_REQUEST['choixspe'])) { if ($_REQUEST['choixspe'] == "$$$$") $req3 = "select expref from experts"; else $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=".$row['EXPREF']."\">".$row['Last Name']." ".$row['First Name']."</a><br>"; } ?></body></html>
oui bien sur Dormeur74
mais quand on construit une page normalement on utilise les noms de colonne c'est plus simple mais si on fait un listing autant utilisé les indices
Je voulais juste dire qu'il n'y avait pas d'erreur dans cette requête. Je n'ai pas du tout cherché à construire une page.
oui j'avais compris mais les erreurs signalés proviennent de php et non de sql