1 votes

Extraction d'une valeur de colonne à partir d'un tableau de noms de tables

Le code ci-dessous affiche toutes les tables d'une base de données appelée "feather" qui contiennent "$entry" dans une colonne appelée "site". Chaque table de "feather" possède une colonne appelée "site".

Ce code fonctionne très bien. Cependant, je voudrais ajouter quelque chose. Chaque table de "plume" contient également une colonne appelée "votes_up". Pour chaque table contenant "$entry", je voudrais imprimer la valeur de la colonne "votes_up" qui correspond à $entry. Comment dois-je m'y prendre ?

Merci d'avance,

John

$result = mysql_query("SHOW TABLES FROM feather") 
or die(mysql_error()); 

while(list($table)= mysql_fetch_row($result))
{
  $sqlA = "SELECT COUNT(*) FROM `$table` WHERE `site` LIKE '$entry'";
  $resA = mysql_query($sqlA) or die("$sqlA:".mysql_error());
  list($isThere) = mysql_fetch_row($resA);
  if ($isThere)
  {
     $table_list[] = $table;
  }
}

foreach( $table_list as $key => $value){
    echo "$value <br />";
}

1voto

Andomar Points 115404

Pourquoi pas :

SELECT COUNT(*), sum(votes_up) FROM `$table` WHERE `site` LIKE '$entry'

Cela additionnerait tous les votes positifs et compterait toutes les rangées.

1voto

Steve Mallory Points 2713

Cela suppose que vous voulez une sortie "votes up" pour chaque occurrence de "entrée" dans la table.

while(list($table)= mysql_fetch_row($result))
{
 $sqlA = "SELECT `site`,votes_up FROM `$table` WHERE `site` LIKE '$entry'";
 $resA = mysql_query($sqlA) or die("$sqlA:".mysql_error());
 if(mysql_num_rows($resA) > 0)
 {
$table_list[] = $table;
while($rowA = mysql_fetch_assoc($resA))
  {
  $votes_up[$rowA["site"]] = $rowA["votes_up"];
  }
 }
}

foreach( $table_list as $key => $value){
    echo "$value <br />";
}

foreach($votes_up as $site => $vote_up)
{
  echo "$site: $vote_up<br />";
}

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X