Récupérer les enregistrements qui sont pas dans une table

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : Récupérer les enregistrements qui sont pas dans une table

par Nico128 » 03 janv. 2006, 21:23

Ahhh!!! J'ai trouvé le problème !

par exemple pour le jeu Mario RPG, quand on mets exporté on voit nettement quil est écrit enfaite Mario RPG\n. Pourtant on le voit pas le \n quand on regarde dans la base. Et quand je dois rajouter une valeur a un autre champ, enfaite ca suprime ce \n !!

Donc il faut juste que je suprime le retour a la ligne dans mes requete. Je savais pas que ca ajoutais aussi un retour a la ligne dans le champ...

Donc mon problème ets résolue, ca va marcher maintenant !! Merci à tous :D

par Nico128 » 03 janv. 2006, 20:54

Enfaite j'avais une big liste de titre, je vais prendre quelque exemple :
Star Wars : The New Droid Army

Star Wars Episode 3 : La Revanche Des Sith

Star Wars Trilogy : Apprentice Of The Force

Star X

Street Fighter Alpha 3

Stuart Little 2

Super Bust A Move

Super Dodge Ball Advance

Super Ghouls'n Ghosts

Super Mario Advance

Super Mario Advance 2

Super Mario Advance 4 : Super Mario Bros 3

Super Mario Ball

Super Mario Bros
J'avais coller ça dans la partie "Code" de Dreamveawer, dans une page complérement vide.

Puis pressé CTRL + F pour faire une rechercher, jai mis le texte à rechercher :
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
S
(les ||| représente des espace enfaite)

Puis j'ai remplacer par :
')";
mysql_query($sql) or die('Erreur SQL !'.$sql.'<br>'.mysql_error());
$sql = "INSERT INTO fiches_jeux_".$_GET['console']."(id,titre) VALUES('','S
Ce qui me donne :
<? 
')";
mysql_query($sql) or die('Erreur SQL !'.$sql.'<br>'.mysql_error());
$sql = "INSERT INTO fiches_jeux_".$_GET['console']."(id,titre) VALUES('','BStar Wars : The New Droid Army
')";
mysql_query($sql) or die('Erreur SQL !'.$sql.'<br>'.mysql_error());
$sql = "INSERT INTO fiches_jeux_".$_GET['console']."(id,titre) VALUES('','Star Wars Episode 3 : La Revanche Des Sith
')";
mysql_query($sql) or die('Erreur SQL !'.$sql.'<br>'.mysql_error());
$sql = "INSERT INTO fiches_jeux_".$_GET['console']."(id,titre) VALUES('','Star Wars Trilogy : Apprentice Of The Force
')";
mysql_query($sql) or die('Erreur SQL !'.$sql.'<br>'.mysql_error());
$sql = "INSERT INTO fiches_jeux_".$_GET['console']."(id,titre) VALUES('','Star X
')";
mysql_query($sql) or die('Erreur SQL !'.$sql.'<br>'.mysql_error());
$sql = "INSERT INTO fiches_jeux_".$_GET['console']."(id,titre) VALUES('','Street Fighter Alpha 3
')";
mysql_query($sql) or die('Erreur SQL !'.$sql.'<br>'.mysql_error());
$sql = "INSERT INTO fiches_jeux_".$_GET['console']."(id,titre) VALUES('','Stuart Little 2
')";
mysql_query($sql) or die('Erreur SQL !'.$sql.'<br>'.mysql_error());
$sql = "INSERT INTO fiches_jeux_".$_GET['console']."(id,titre) VALUES('','Super Bust A Move
')";
mysql_query($sql) or die('Erreur SQL !'.$sql.'<br>'.mysql_error());
$sql = "INSERT INTO fiches_jeux_".$_GET['console']."(id,titre) VALUES('','Super Dodge Ball Advance
')";
mysql_query($sql) or die('Erreur SQL !'.$sql.'<br>'.mysql_error());
$sql = "INSERT INTO fiches_jeux_".$_GET['console']."(id,titre) VALUES('','Super Ghouls'n Ghosts
')";
mysql_query($sql) or die('Erreur SQL !'.$sql.'<br>'.mysql_error());
$sql = "INSERT INTO fiches_jeux_".$_GET['console']."(id,titre) VALUES('','Super Mario Advance
')";
mysql_query($sql) or die('Erreur SQL !'.$sql.'<br>'.mysql_error());
$sql = "INSERT INTO fiches_jeux_".$_GET['console']."(id,titre) VALUES('','Super Mario Advance 2
')";
mysql_query($sql) or die('Erreur SQL !'.$sql.'<br>'.mysql_error());
$sql = "INSERT INTO fiches_jeux_".$_GET['console']."(id,titre) VALUES('','Super Mario Advance 4 : Super Mario Bros 3
')";
mysql_query($sql) or die('Erreur SQL !'.$sql.'<br>'.mysql_error());
$sql = "INSERT INTO fiches_jeux_".$_GET['console']."(id,titre) VALUES('','Super Mario Ball
')";
mysql_query($sql) or die('Erreur SQL !'.$sql.'<br>'.mysql_error());
$sql = "INSERT INTO fiches_jeux_".$_GET['console']."(id,titre) VALUES('','Super Mario Bros
?>
On reglant 2 ptit probléme, celui du 1er titre et le tout dernier titre ca nous donne au final :
<? 

$sql = "INSERT INTO fiches_jeux_".$_GET['console']."(id,titre) VALUES('','BStar Wars : The New Droid Army
')";
mysql_query($sql) or die('Erreur SQL !'.$sql.'<br>'.mysql_error());
$sql = "INSERT INTO fiches_jeux_".$_GET['console']."(id,titre) VALUES('','Star Wars Episode 3 : La Revanche Des Sith
')";
mysql_query($sql) or die('Erreur SQL !'.$sql.'<br>'.mysql_error());
$sql = "INSERT INTO fiches_jeux_".$_GET['console']."(id,titre) VALUES('','Star Wars Trilogy : Apprentice Of The Force
')";
mysql_query($sql) or die('Erreur SQL !'.$sql.'<br>'.mysql_error());
$sql = "INSERT INTO fiches_jeux_".$_GET['console']."(id,titre) VALUES('','Star X
')";
mysql_query($sql) or die('Erreur SQL !'.$sql.'<br>'.mysql_error());
$sql = "INSERT INTO fiches_jeux_".$_GET['console']."(id,titre) VALUES('','Street Fighter Alpha 3
')";
mysql_query($sql) or die('Erreur SQL !'.$sql.'<br>'.mysql_error());
$sql = "INSERT INTO fiches_jeux_".$_GET['console']."(id,titre) VALUES('','Stuart Little 2
')";
mysql_query($sql) or die('Erreur SQL !'.$sql.'<br>'.mysql_error());
$sql = "INSERT INTO fiches_jeux_".$_GET['console']."(id,titre) VALUES('','Super Bust A Move
')";
mysql_query($sql) or die('Erreur SQL !'.$sql.'<br>'.mysql_error());
$sql = "INSERT INTO fiches_jeux_".$_GET['console']."(id,titre) VALUES('','Super Dodge Ball Advance
')";
mysql_query($sql) or die('Erreur SQL !'.$sql.'<br>'.mysql_error());
$sql = "INSERT INTO fiches_jeux_".$_GET['console']."(id,titre) VALUES('','Super Ghouls'n Ghosts
')";
mysql_query($sql) or die('Erreur SQL !'.$sql.'<br>'.mysql_error());
$sql = "INSERT INTO fiches_jeux_".$_GET['console']."(id,titre) VALUES('','Super Mario Advance
')";
mysql_query($sql) or die('Erreur SQL !'.$sql.'<br>'.mysql_error());
$sql = "INSERT INTO fiches_jeux_".$_GET['console']."(id,titre) VALUES('','Super Mario Advance 2
')";
mysql_query($sql) or die('Erreur SQL !'.$sql.'<br>'.mysql_error());
$sql = "INSERT INTO fiches_jeux_".$_GET['console']."(id,titre) VALUES('','Super Mario Advance 4 : Super Mario Bros 3
')";
mysql_query($sql) or die('Erreur SQL !'.$sql.'<br>'.mysql_error());
$sql = "INSERT INTO fiches_jeux_".$_GET['console']."(id,titre) VALUES('','Super Mario Ball
')";
mysql_query($sql) or die('Erreur SQL !'.$sql.'<br>'.mysql_error());
$sql = "INSERT INTO fiches_jeux_".$_GET['console']."(id,titre) VALUES('','Super Mario Bros
')";
mysql_query($sql) or die('Erreur SQL !'.$sql.'<br>'.mysql_error());
?>
Voilà comment ajouter plus de 500 titre dans 5mn seulement. Enfaite ça servait à rien que je mette toute cette démarche, mais puisque tu me la demander ^^

Je remarque que j'ai fait la requete comme ça :
INSERT INTO fiches_jeux_".$_GET['console']."(id,titre) VALUES('','Super Mario Bros
')";
Si jaurais fait la requete ainsi ets ce que ca aurait regler le problème ?
INSERT INTO fiches_jeux_".$_GET['console']."(id,titre,champ3,champ4,champ5,champ6,champ7,champ8) VALUES('','Super Mario Bros','','','','','','')";
Vous me direz que j'ai ca tester avant de demander, c'est ce que je vais vite faire.

par Truc » 03 janv. 2006, 20:40

donc avec Dreamweaver jai coller toute la liste dedant, puis j'ai fait un Rechercher/Remplacer pour ajouter les requete.
:shock:

collé toute la liste dans quoi ?

j'ai du mal à suivre ce que tu as testé :?

par Nico128 » 03 janv. 2006, 20:33

Je viens de voir ce qui clochait :shock:

Je suis aller dans phpmyadmin et en haut il y a un onglet "Rechercher" alors j'ai simplement rechercher un titre qui se trouve dans fiche_jeux_gba et aucun résultat c'était trouvé, pourtant le titre existais bien, je lavais écrit exactement la meme chose :?

A par le champ titre, j'en ai aussi des autres, alors jai essayer de remplir un autre champ, et la en faisant la recherche, paf il trouve le jeu. Quand j'édite encore une fois et que je mets plus rien a ce champ, il trouve toujours.

Donc je comprend pas trop pourquoi il faut que je remplisse un autre champ pour que l'enregistrement soit reconnu :shock:

Ils ont mal été enregistré ? car j'ai fait ça assez spécialement. Javais une liste de 500 titres, et cétait trop lont de tous les ajouté manuelement, donc avec Dreamweaver jai coller toute la liste dedant, puis j'ai fait un Rechercher/Remplacer pour ajouter les requete. Puis jai executer la page.

Bizard bizard cette histoire

par Nico128 » 03 janv. 2006, 18:11

Ah mince, finalement ça marche pas super.

Enfaite cest super bizard ! Dans ma table de test, si j'ajoute le titre Super MArio Rpg, il s'enlève bien de la liste de titre. Par contre si c'est un autre titre, là il reste dans la liste.

Je vois vraiment pas où est le problème, cest ilogique d'après moi :shock:

par Nico128 » 03 janv. 2006, 00:34

Donc ça marche, reste plus qu'a afficher les résultat, jai essayé :
(...)
Mais aucun n'affiche les résultats, il faut mettre quoi ?
essaie en remplaçant le "*" dans la requete par "t1.titre" et tu feras appel à:
echo $ligne['titre'].'<br>';
Parfais ! Désormais tout marche comme je le souhaitais ! Merci beaucouè à tous :D

par Nico128 » 03 janv. 2006, 00:28

Effectivement oui, mais admétons que je suprime un test depuis phpmyadmin ça va pas updater. Je préfére que cest "automatique". Dès que je suprime un test, ca n'affiche pas le titre, sans faire d'autres requete.

et sinon quelqun sait comment afficher ?

par Truc » 03 janv. 2006, 00:25

Donc ça marche, reste plus qu'a afficher les résultat, jai essayé :
(...)
Mais aucun n'affiche les résultats, il faut mettre quoi ?
essaie en remplaçant le "*" dans la requete par "t1.titre" et tu feras appel à:
echo $ligne['titre'].'<br>';

par Shiva » 03 janv. 2006, 00:06

Si tu supprime un test tu remet le champ Etat à 0 rien de plus.

par Nico128 » 02 janv. 2006, 23:45

Salut, c'est une idée oui, mais si je suprime un test, je devrai aussi modifier dans la fiche. J'avais commencé comme ça au début et jai vu que pour ce que je faisais cétait pas la meilleur facon.

par Shivaia » 02 janv. 2006, 23:18

Salut,
Pourquoi ne pas tout simplement rajouter dans ta table fiches_jeux_gba un champ nommé "Test" par exemple qui serait de type ENUM('0','1') avec valeur par défaut à 0. Comme cela tout les jeux étant à 0 sont considérés comme non téstés et seux = 1 comme téstés. Il ne te reste ensuite qu'à faire resortir toutes les lignes dont Test = '0'.
Enfin bon, c'est juste une idée comme ça :)

par Nico128 » 02 janv. 2006, 23:13

C'était écrit FORM au lieu de FROM ^^

Donc ça marche, reste plus qu'a afficher les résultat, jai essayé :
echo $ligne['t1'].'<br>';
ou
echo $ligne['t2'].'<br>';
ou encore
echo $ligne['titre'].'<br>';
Mais aucun n'affiche les résultats, il faut mettre quoi ?

merci d'avance

par Cyrano » 02 janv. 2006, 22:50

Fais un affichage de la requête générée et teste la directement dans phpMyAdmin : vérifie ce qui en sort. Le message d'erreur est renvoyé probablement à cause d'une erreur dans la qrequête, tu auras un message plus explicite dans PMA.

par Nico128 » 02 janv. 2006, 22:23

Houla...jen suis pas aussi avancé ^^

Mais j'ai essayé de mettre :
$query = "SELECT * FORM fiches_jeux_". $_GET['console'] ." AS t1 LEFT JOIN test_". $_GET['console'] ." AS t2 ".
         "ON t1.titre = t2.titre ".
         "WHERE t2.titre IS NULL";
$resultat = mysql_query($query, $mysql_link);

while ($ligne = mysql_fetch_array($resultat)) 
{
echo $ligne['titre'].'<br>';
}


?>
Et voici le message d'erreur :
Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in
Le problème vient de la boucle, je l'ai enlever et il n'y a plus ce message d'erreur. Mais je vois pas en quoi elle est fausse ?

par Cyrano » 02 janv. 2006, 19:57

Mouais, on peut largement simplifier avec une seule requête et une jointure gauche, quelque chose dans ce style:
$query = "SELECT * FORM fiches_jeux_". $_GET['console'] ." AS t1 LEFT JOIN text_". $_GET['console'] ." AS t2 ".
         "ON t1.titre = t2.titre ".
         "WHERE t2.titre IS NULL";