2009-06-17 13 views
0

Le code fait écho ci-dessous les éléments suivants:PHP - Code de fait presque ce que je veux à

Nom de la table 1

Nom de la table 2

Nom de la table 3

Nom de la table 4 "$ entry": "votes_up for $ entrée dans le nom de la table 4"

Je veux faire écho:

Nom de la table 1: "votes_up pour l'entrée de $ dans le tableau Nom 1"

Nom de la table 2: "votes_up pour l'entrée de $ dans le tableau Nom 2"

Nom de la table 3: "votes_up pour l'entrée de $ dans le tableau 3 Nom"

Nom de la table 4: "votes_up pour l'entrée de $ dans le tableau 4 Nom"

Comment est-ce que je pourrais changer le code pour le faire écho ce que je veux?

Le nombre de noms de table varie en fonction de $ entry.

Merci,

John

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

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"; 
} 

Répondre

0

Il semble que vous sélectionnez $ site de plusieurs tables - vous assurer qu'ils ont des valeurs uniques? Il est possible que les valeurs que vous sélectionnez soient identiques dans chacune des tables (même si NO_DUPLICATES est activé pour chaque table).

+0

Je retourne toutes les tables qui ont $ entrée dans la colonne 'site'. –

+0

Oui, mais cela signifie que 'site' sera toujours le même, ce qui signifie que vous avez écrasé la valeur $ votes_up à chaque fois (puisque vous avez toujours rempli la colonne $ row ['site'], qui est toujours égale à $ entrée) –

1

Nevermind.

Cela me donne ce que je veux:

$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 $table) { 
    $sql = "SELECT votes_up FROM `$table` WHERE `site` LIKE '$entry'"; 
    $sql1 = mysql_query($sql) or die("$sql:".mysql_error()); 
    while ($row = mysql_fetch_assoc($sql1)) { 
     echo $table . ': "' . $row['votes_up'] . " for $entry from $table\"<br />"; 
    } 
} 
Questions connexes