HELP problème avec un script PHP! please!

  • mihalea
  • Born
  • Born
  • No Avatar
  • Inscription: Sep 17, 2008
  • Messages: 2
  • Status: Offline

Message Juin 19th, 2010, 12:43 pm

Salut tout le monde!
J'ai un problème avec un script php. Qu'est-ce que je veux faire?
Je veux sélectionner dans le tableau "catégories" avec les colonnes: "id", "name" (qui signifie le nom de la catégorie) et "main_cat" (représente la catégorie dans laquelle d'autres catégories est une vertu, essentiellement les catégories qui ont une main_cat sont des sous-catégories).
Je tiens à sélectionner dans le tableau des entrées qui a comme main_cat "une entrée qui n'existe pas en tant que catégorie, qui n'existe pas une entrée avec la colonne" nom "que la colonne" main_cat ".

Voici donc le script et #058;

PHP Code: [ Select ]
<?php
$getcats1=mysql_query("SELECT DISTINCT name FROM categories");
while($cats1=mysql_fetch_array($getcats1)){
 $cat1=$cats1['name'];
 
 $getinvalidcats=mysql_query("SELECT id, name FROM categories WHERE main_cat<>'".$cat1."'");
 while($invalidcats=mysql_fetch_array($getinvalidcats)) {
  $invalidcats_id=$invalidcats['id'];
  $invalidcats_name=$invalidcats['name'];
 
  print"<span class=normal>$invalidcats_name</span>&nbsp;&nbsp;&nbsp;&nbsp;(<a class=link href=deletecategory.php?id=$invalidcats_id>delete</a>)<br>";
 
}
}
?>
  1. <?php
  2. $getcats1=mysql_query("SELECT DISTINCT name FROM categories");
  3. while($cats1=mysql_fetch_array($getcats1)){
  4.  $cat1=$cats1['name'];
  5.  
  6.  $getinvalidcats=mysql_query("SELECT id, name FROM categories WHERE main_cat<>'".$cat1."'");
  7.  while($invalidcats=mysql_fetch_array($getinvalidcats)) {
  8.   $invalidcats_id=$invalidcats['id'];
  9.   $invalidcats_name=$invalidcats['name'];
  10.  
  11.   print"<span class=normal>$invalidcats_name</span>&nbsp;&nbsp;&nbsp;&nbsp;(<a class=link href=deletecategory.php?id=$invalidcats_id>delete</a>)<br>";
  12.  
  13. }
  14. }
  15. ?>



Je suis désespérément besoin de votre aide! :)

Merci les gars!
Moderator Remark: code tags
  • Anonymous
  • Bot
  • No Avatar
  • Inscription: 25 Feb 2008
  • Messages: ?
  • Loc: Ozzuland
  • Status: Online

Message Juin 19th, 2010, 12:43 pm

  • SpooF
  • ٩๏̯͡๏۶
  • Bronze Member
  • Avatar de l’utilisateur
  • Inscription: Mai 22, 2004
  • Messages: 3415
  • Loc: Richland, WA
  • Status: Offline

Message Juin 22nd, 2010, 8:48 am

Donc vous avez une table complète des catégories, main_cat pourrait contenir la valeur du nom de l'une des lignes dans la table. Vous souhaitez sélectionner toutes les catégories qui ont une valeur main_cat qui n'existe pas dans le tableau Catégories. Corriger? Il suffit, mais, sélectionnez toutes les lignes où les catégories catégorie principale ne pas exister.
#define NULL (::rand() % 2)
  • SpooF
  • ٩๏̯͡๏۶
  • Bronze Member
  • Avatar de l’utilisateur
  • Inscription: Mai 22, 2004
  • Messages: 3415
  • Loc: Richland, WA
  • Status: Offline

Message Juin 22nd, 2010, 9:04 am

Essayez quelque chose comme ceci: (Ce n'est pas testé)
PHP Code: [ Select ]
$result = mysql_query("SELECT * FROM catagories");
 
while($row = mysql_fetch_array($result)) {
   $arr['name'][] = $row['name'];
   $arr['main_cat'][] = $row['main_cat']
}
 
print_r(array_diff($arr['name'],$arr['main_cat']));
 
  1. $result = mysql_query("SELECT * FROM catagories");
  2.  
  3. while($row = mysql_fetch_array($result)) {
  4.    $arr['name'][] = $row['name'];
  5.    $arr['main_cat'][] = $row['main_cat']
  6. }
  7.  
  8. print_r(array_diff($arr['name'],$arr['main_cat']));
  9.  
#define NULL (::rand() % 2)
  • joebert
  • Sledgehammer
  • Genius
  • No Avatar
  • Inscription: Fév 10, 2004
  • Messages: 13455
  • Loc: Florida
  • Status: Offline

Message Juin 22nd, 2010, 9:18 am

Je pense que votre table est le programme d'installation de mal, ou que vous interrogez la mauvaise table pour obtenir cat1 $.

Par le regard des choses », main_cat" se réfère à la "id" d'un pare pas la catégorie dans un tableau normal. Toutefois, il semble que vous utilisez le nom de "colonne" à des catégories s'associer avec eachother.

-

En supposant que le tableau ne fait associer les sous-catégories en utilisant le nom de colonne, vous n'avez pas besoin d'utiliser que la première requête et la boucle de suite si votre version de MySQL supporte les sous-requêtes.

SQL Code: [ Select ]
SELECT id, name
   FROM categories
   WHERE main_cat
      NOT IN (SELECT DISTINCT name FROM categories)
  1. SELECT id, name
  2.    FROM categories
  3.    WHERE main_cat
  4.       NOT IN (SELECT DISTINCT name FROM categories)
Strong with this one, the sudo is.

Afficher de l'information

  • Total des messages de ce sujet: 4 messages
  • Utilisateurs parcourant ce forum: Aucun utilisateur enregistré et 149 invités
  • Vous ne pouvez pas poster de nouveaux sujets
  • Vous ne pouvez pas répondre aux sujets
  • Vous ne pouvez pas éditer vos messages
  • Vous ne pouvez pas supprimer vos messages
  • Vous ne pouvez pas joindre des fichiers
 
 

© 2011 Unmelted, LLC. Ozzu® est une marque déposée de Unmelted, LLC