2009-06-16 3 views
1

Der folgende Code gibt alle Tabellen in einer Datenbank namens "feather" aus, die "$ entry" in einer Spalte namens "site" enthalten. Jede Tabelle in "feather" hat eine Spalte namens "site".Ziehen eines Spaltenwerts aus einem Array von Tabellennamen

Dieser Code funktioniert gut. Ich möchte jedoch etwas hinzufügen. Jede Tabelle in "feather" enthält auch eine Spalte namens "votes_up". Für jede Tabelle, die "$ entry" enthält, möchte ich den Wert für die "votes_up" -Spalte ausdrucken, die $ entry entspricht. Wie gehe ich dabei vor?

Vielen Dank im Voraus,

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

Antwort

1

Wie wäre:

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

, dass die upvotes allem würde addieren und alle Zeilen zählen.

1

Dies setzt voraus, dass Sie für jedes Vorkommen von 'entry' in der Tabelle eine 'votes up' Ausgabe wünschen.

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 />"; 
} 
+0

Hallo ... Ich schätze die Antwort. Ich habe Ihren Code versucht, und für die Zeile "if (mysql_num_rows ($ resA) > 0)", bekomme ich diesen Fehler: Parse-Fehler: Syntaxfehler, unerwartete ';' –

+0

Hoppla. sieht so aus, als ob mein '>' in '>' umgewandelt wurde. Versuchen Sie es wieder in ein '>' zu ändern. Es gibt auch zwei in jeder der foreach Schleifen. –

+0

Ich habe meinen Code bearbeitet, um diese Fehler zu beheben. –

Verwandte Themen