mysql_field_table ist nach der Vereinigung ungültig?

WBOY
Freigeben: 2016-08-04 09:22:03
Original
1084 Leute haben es durchsucht

——————
mysql_field_table ist eine Funktion zum Abrufen des Namens der Datentabelle
Unter normalen Umständen fragt SQL nur 1 Tabelle ab und kann ausgeführt werden
Entschuldigung: Wie bekomme ich mehrere Tabellennamen, nachdem SQL Select mehrere Tabellen in Union abgefragt hat?
——————
Ausführbarer Code:
//SQL-Auswahl fragt nur 1 Datenelement ab

<code>$sql = "
    SELECT id,title FROM `TABLE1` WHERE id IN($id)
    ORDER BY id DESC
    LIMIT 0,10
";
$result = mysql_query($sql);
$table_name = mysql_field_table($result,0);
echo "<br />表名:$table_name";</code>
Nach dem Login kopieren
Nach dem Login kopieren

——————
Fragecode:

<code>//合并2个表,按时间倒序取出前10条记录
$sql = "
    SELECT id,title FROM `TABLE1` WHERE id IN($id)
    UNION
    SELECT id,title FROM `TABLE2` WHERE id IN($id)
    UNION
    ORDER BY id DESC
    LIMIT 0,10
";
$result = mysql_query($sql);

if( $result ){
    if( mysql_num_rows($result) ){
        $a = array();
        while($arr = mysql_fetch_array($result)){
            $table_name = mysql_field_table($result,0);
            echo "<br />表名:$table_name";
            //***就是在这里
            //***请问各位,怎么获取多个表名
        }
    }
}</code>
Nach dem Login kopieren
Nach dem Login kopieren

——————
Gruß,
Vielen Dank!

Antwortinhalt:

——————
mysql_field_table ist eine Funktion zum Abrufen des Namens der Datentabelle
Unter normalen Umständen fragt SQL nur 1 Tabelle ab und kann ausgeführt werden
Entschuldigung: Wie bekomme ich mehrere Tabellennamen, nachdem SQL Select mehrere Tabellen in Union abgefragt hat?
——————
Ausführbarer Code:
//SQL-Auswahl fragt nur 1 Datenelement ab

<code>$sql = "
    SELECT id,title FROM `TABLE1` WHERE id IN($id)
    ORDER BY id DESC
    LIMIT 0,10
";
$result = mysql_query($sql);
$table_name = mysql_field_table($result,0);
echo "<br />表名:$table_name";</code>
Nach dem Login kopieren
Nach dem Login kopieren

——————
Fragecode:

<code>//合并2个表,按时间倒序取出前10条记录
$sql = "
    SELECT id,title FROM `TABLE1` WHERE id IN($id)
    UNION
    SELECT id,title FROM `TABLE2` WHERE id IN($id)
    UNION
    ORDER BY id DESC
    LIMIT 0,10
";
$result = mysql_query($sql);

if( $result ){
    if( mysql_num_rows($result) ){
        $a = array();
        while($arr = mysql_fetch_array($result)){
            $table_name = mysql_field_table($result,0);
            echo "<br />表名:$table_name";
            //***就是在这里
            //***请问各位,怎么获取多个表名
        }
    }
}</code>
Nach dem Login kopieren
Nach dem Login kopieren

——————
Gruß,
Vielen Dank!

Die Ergebnismenge nach der Vereinigung wird als dieselbe Datenbanktabelle betrachtet. Unabhängig davon, wie Sie mysql_field_table hier erhalten, können Sie nur einen Tabellennamen erhalten. Der richtige Ansatz besteht darin, beim Erstellen einer SQL-Anweisung den Namen der Datenbanktabelle, aus der sie stammen, an jeden Datensatz anzuhängen, damit Sie anhand der Ergebnismenge erkennen können, aus welcher Datenbanktabelle diese Daten stammen.

<code>$sql = "
    SELECT id,title,'TABLE1' AS ComesFrom FROM `TABLE1` WHERE id IN($id)
    UNION
    SELECT id,title,'TABLE2'              FROM `TABLE2` WHERE id IN($id)
    UNION
    ORDER BY id DESC
    LIMIT 0,10
";</code>
Nach dem Login kopieren
Verwandte Etiketten:
Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage