Alors là je ne comprends pas ! - PHP - Programmation
Marsh Posté le 12-09-2002 à 20:07:10
oui mais nan c pas possible qu'il y é une erreur la meme page fonctionne en local
pour la ligne 38 :
Code :
|
Marsh Posté le 12-09-2002 à 20:18:54
Donne nous le code complet ca sera plus facile de t'aider
Marsh Posté le 12-09-2002 à 20:22:45
ludo2604 a écrit a écrit : Je ne sais pas si c'est Free mais mon script php qui marchait impek il ya quelques jours foire aujourd'hui alors que je n'ai rien touché !et affiche cette erreur :
|
Une modification de la base d'un côté où de l'autre qui fait que la requête ne marche plus. Et le résultat que tu récupère ne peux donc pas être 'fetché'.
Marsh Posté le 12-09-2002 à 20:23:09
bon vous l'aurez voulu
[php]
<?
require('style.php';
if($cat)
{
echo "<b><a href=index.php?p=scriptsphp3/lyrics/detail&cat=$cat&letter=A>A</a> <a href=index.php?p=scriptsphp3/lyrics/detail&cat=$cat&letter=B>B</a> <a href=index.php?p=scriptsphp3/lyrics/detail&cat=$cat&letter=C>C</a> <a href=index.php?p=scriptsphp3/lyrics/detail&cat=$cat&letter=D>D</a> <a href=index.php?p=scriptsphp3/lyrics/detail&cat=$cat&letter=E>E</a> <a href=index.php?p=scriptsphp3/lyrics/detail&cat=$cat&letter=F>F</a> <a href=index.php?p=scriptsphp3/lyrics/detail&cat=$cat&letter=G>G</a> <a href=index.php?p=scriptsphp3/lyrics/detail&cat=$cat&letter=H>H</a> <a href=index.php?p=scriptsphp3/lyrics/detail&cat=$cat&letter=I>I</a> <a href=index.php?p=scriptsphp3/lyrics/detail&cat=$cat&letter=J>J</a> <a href=index.php?p=scriptsphp3/lyrics/detail&cat=$cat&letter=K>K</a> <a href=index.php?p=scriptsphp3/lyrics/detail&cat=$cat&letter=L>L</a> <a href=index.php?p=scriptsphp3/lyrics/detail&cat=$cat&letter=M>M</a> <a href=index.php?p=scriptsphp3/lyrics/detail&cat=$cat&letter=N>N</a> <a href=index.php?p=scriptsphp3/lyrics/detail&cat=$cat&letter=O>O</a> <a href=index.php?p=scriptsphp3/lyrics/detail&cat=$cat&letter=P>P</a> <a href=index.php?p=scriptsphp3/lyrics/detail&cat=$cat&letter=Q>Q</a> <a href=index.php?p=scriptsphp3/lyrics/detail&cat=$cat&letter=R>R</a> <a href=index.php?p=scriptsphp3/lyrics/detail&cat=$cat&letter=S>S</a> <a href=index.php?p=scriptsphp3/lyrics/detail&cat=$cat&letter=T>T</a> <a href=index.php?p=scriptsphp3/lyrics/detail&cat=$cat&letter=U>U</a> <a href=index.php?p=scriptsphp3/lyrics/detail&cat=$cat&letter=V>V</a> <a href=index.php?p=scriptsphp3/lyrics/detail&cat=$cat&letter=W>W</a> <a href=index.php?p=scriptsphp3/lyrics/detail&cat=$cat&letter=X>X</a> <a href=index.php?p=scriptsphp3/lyrics/detail&cat=$cat&letter=Y>Y</a> <a href=index.php?p=scriptsphp3/lyrics/detail&cat=$cat&letter=Z>Z</a> <a href=index.php?p=scriptsphp3/lyrics/detail&cat=$cat&letter=%23>#</a></b>";
}
?>
<br>
<img src="Graphisme/barre.jpg" width="400" height="1">
</form>
<p>
<?
require ("secret/conf.php3" );
?>
<?
if($HTTP_GET_VARS["cat"] == "artistes" ){
if($HTTP_GET_VARS["letter"] == "#" ){
$requete = mysql_query("SELECT * FROM artistes WHERE nom REGEXP '^[0-9].*' ORDER BY nom" );
}elseif(ereg("^[A-Z]$", $HTTP_GET_VARS["letter"])){
$requete = mysql_query("Select DISTINCT t1.nom,id, count(t2.id_artistes) As nbr FROM artistes As t1 LEFT join chansons As t2 On t1.id=t2.id_artistes WHERE t1.nom LIKE '{$HTTP_GET_VARS["letter"]}%' group by t1.nom" );
}else{
echo"! Choisissez une lettre !";
exit();
}
while($ligne_artiste=mysql_fetch_object($requete)) //ligne 38
{
$req=mysql_query("SELECT * FROM artistes ORDER BY id DESC LIMIT 9,1" );
$ligne=mysql_fetch_object($req);
$idlimit = $ligne->id;
if($ligne_artiste->id>=$idlimit)
{
echo "<div align=center><a class=main href='index.php?p=scriptsphp3/lyrics/artistes&cat=$cat&letter=$letter&id=$ligne_artiste->id'>$ligne_artiste->nom</a> <font color=white>($ligne_artiste->nbr)</font><font color=#FFD16F>New!</font><br>";
}
else
{
echo "<div align=center><a class=main href='index.php?p=scriptsphp3/lyrics/artistes&cat=$cat&letter=$letter&id=$ligne_artiste->id'>$ligne_artiste->nom</a> <font color=white>($ligne_artiste->nbr)<br>";
}
echo "</div>";
}
}elseif ($HTTP_GET_VARS["cat"] == "chansons" ){
echo("<TABLE width=75%>\n<TR valign=top>\n<TD width=50%>\n<TABLE align=center>" );
if($HTTP_GET_VARS["letter"] == "#" ){
$requete = mysql_query("SELECT DISTINCT t1.titre,t1.id_lyrics,t1.nb_click,t1.id_artistes,t2.id,t2.nom FROM chansons As t1 LEFT join artistes As t2 On t1.id_artistes=t2.id WHERE t1.titre REGEXP '^[0-9].*' ORDER BY t1.titre" );
}elseif(ereg("^[A-Z]$", $HTTP_GET_VARS["letter"])){
$requete = mysql_query("SELECT DISTINCT t1.titre,t1.id_lyrics,t1.nb_click,t1.id_artistes,t2.id,t2.nom FROM chansons As t1 LEFT join artistes As t2 On t1.id_artistes=t2.id WHERE t1.titre LIKE '{$HTTP_GET_VARS["letter"]}%' ORDER BY t1.titre" );
}else{
echo"! Choisissez une lettre !";
exit();
}
$nbrow=mysql_num_rows($requete);
$col1=($nbrow-($nbrow%2))/2+($nbrow%2);
$num=0;
while($ligne_chanson=mysql_fetch_object($requete)){
$num++;
if($num==$col1){
echo "</TABLE>\n</TD>\n<TD width=60%>\n<TABLE align=center>\n";
}
echo "<div align=left><font color=white><b>.</b> <a href=index.php?p=scriptsphp3/lyrics/paroles&cat=$cat&letter=$letter&id_lyrics=$ligne_chanson->id_lyrics&id=$ligne_chanson->id>$ligne_chanson->titre</a><font color=white> - $ligne_chanson->nom<br>";
}
echo"</TABLE>\n</TD></TR>\n</TABLE>\n";
}
?>
[/php]
Marsh Posté le 12-09-2002 à 20:24:54
Ben tu fe un EXIT; ce sera pas ca la merde ?
Marsh Posté le 12-09-2002 à 20:29:31
Je@nb a écrit a écrit : ta testé ta requette ? |
<= Smon new smiley perso
Marsh Posté le 12-09-2002 à 20:32:53
et le mysql_pconnect ou connect, et le select_db, c'est pour les chiens?
Marsh Posté le 12-09-2002 à 20:39:26
Max Evans a écrit a écrit : <= Smon new smiley perso |
trop bien
Marsh Posté le 12-09-2002 à 20:56:31
Max Evans a écrit a écrit : Ben tu fe un EXIT; ce sera pas ca la merde ? |
non
Marsh Posté le 12-09-2002 à 20:56:52
zion a écrit a écrit : et le mysql_pconnect ou connect, et le select_db, c'est pour les chiens? |
ya
<?
require ("secret/conf.php3" );
?>
si tu regardes bien
Marsh Posté le 12-09-2002 à 20:57:29
Je@nb a écrit a écrit : ta testé ta requette ? |
comment ça ?
oui elle marche en local et pouruqoi aujourd'hui ca marche pas sur Free
Marsh Posté le 12-09-2002 à 21:15:51
ludo2604 a écrit a écrit : ya <? require ("secret/conf.php3" ); ?> si tu regardes bien |
oui et?
ca veux pas dire que tu le fais, et encore moins que tu le fasses bien
Marsh Posté le 12-09-2002 à 21:20:14
zion a écrit a écrit : oui et? ca veux pas dire que tu le fais, et encore moins que tu le fasses bien |
oui mais non ce n'est pas ça car mon autre requette pour les chansons fonctionne elle.
ici :
http://purcity.free.fr/index.php?p [...] s&letter=A
essaye en prenant dans le menu "chansons" et ça marchera donc s'pa ça
Marsh Posté le 12-09-2002 à 21:23:54
ReplyMarsh Posté le 12-09-2002 à 21:41:20
zion a écrit a écrit : mysql_error() alors |
arf bein oui joublie tt le temps !!
bref, j'ai mis mysql_error() avec toute les requetes et voila ce qu'il me met now :
Code :
|
ca veut dire quoi tt ca
Marsh Posté le 13-09-2002 à 10:45:07
ludo2604 a écrit a écrit : arf bein oui joublie tt le temps !! bref, j'ai mis mysql_error() avec toute les requetes et voila ce qu'il me met now :
|
Ca veut dire que mysql considère que ta requête qui porte sur plusieurs table risque de retourner un trop grand nombre de résultat ou risque de scanner trop de fois les tables et donc il bloque cette requête.
Quand ca m'est arrivé, je n'ai trouvé comme seule solution que la division de la requête en deux. (chiant mais parfois obligatoire)
Au début, je pensais qu'en suprimant des lignes, ca remarcherait mais en fait c'est pas le cas, donc il te reste plus qu'à couper ta requête en deux parties que tu exécuteras l'une après l'autre.
Marsh Posté le 13-09-2002 à 15:32:34
omega2 a écrit a écrit : Ca veut dire que mysql considère que ta requête qui porte sur plusieurs table risque de retourner un trop grand nombre de résultat ou risque de scanner trop de fois les tables et donc il bloque cette requête. Quand ca m'est arrivé, je n'ai trouvé comme seule solution que la division de la requête en deux. (chiant mais parfois obligatoire) Au début, je pensais qu'en suprimant des lignes, ca remarcherait mais en fait c'est pas le cas, donc il te reste plus qu'à couper ta requête en deux parties que tu exécuteras l'une après l'autre. |
arf merci mais je ne sais pas faire ça moi
Marsh Posté le 13-09-2002 à 15:45:22
ludo2604 a écrit a écrit : arf merci mais je ne sais pas faire ça moi |
Ta requete, elle est surement du genre "select colone1,colone2 from table1,table2 where table1.colone3=table2.colone4"
Il faut que tu fasses une requete qui soit en "select colone1,colone3 from table1"
et l'autre en "select colone2 from table2 where colone4=$valeur"
la variable $valeur contient la valeur de colone3 retourné par la première requête.
Si ta table2 n'a aps beaucoup de ligne mais que la requete sur table1 t'en retourne beaucoup alors il est peut être plus rapide de ramener toutes les valeurs contenus dans table2 (donc "select colone2,colone4 from table2" ) et de chercher par programme les lignes de table2 qui corespondent à chaque ligne de table1.
Marsh Posté le 13-09-2002 à 15:54:25
omega2 a écrit a écrit : Ta requete, elle est surement du genre "select colone1,colone2 from table1,table2 where table1.colone3=table2.colone4" Il faut que tu fasses une requete qui soit en "select colone1,colone3 from table1" et l'autre en "select colone2 from table2 where colone4=$valeur" la variable $valeur contient la valeur de colone3 retourné par la première requête. Si ta table2 n'a aps beaucoup de ligne mais que la requete sur table1 t'en retourne beaucoup alors il est peut être plus rapide de ramener toutes les valeurs contenus dans table2 (donc "select colone2,colone4 from table2" ) et de chercher par programme les lignes de table2 qui corespondent à chaque ligne de table1. |
ah oui ok séparation des jointures en gros c ca ?
Si oui merci des explications je vais voir ça et je te tiens au courant
Marsh Posté le 13-09-2002 à 16:03:19
ludo2604 a écrit a écrit : ah oui ok séparation des jointures en gros c ca ? Si oui merci des explications je vais voir ça et je te tiens au courant |
Exactement. Je retrouvais plus le terme.
En fait j'ai même pas pensé qu'il y en avait une quand j'ai pondus mes explications.
Marsh Posté le 12-09-2002 à 18:27:35
Je ne sais pas si c'est Free mais mon script php qui marchait impek il ya quelques jours foire aujourd'hui alors que je n'ai rien touché !et affiche cette erreur :
comment ça se fait !?
PS: la meme page ou il ya le script marche impek en local !
Message édité par ludo2604 le 12-09-2002 à 18:28:16
---------------
Make Portraits, Not War!