2016-04-19 7 views
0

Ich habe eine Tabelle namens c33062, die Datenzeilen in einer Seite anzeigt. Ich habe zwanzig andere MySQL-Tabellen mit derselben Struktur und Information, nur unterschiedliche Daten. Anstatt für jede Seite eine eigene Seite zu erstellen, möchte ich Hyperlinks für jede einzelne erstellen, die dann die Tabelleninformationen verknüpft. Meine Aussage ist:Eine PHP-Template-Seite, rufen Sie verschiedene Tabellen mit Hyperlinks

$query = "SELECT id, year, price_avg_sold, price_sqft, 
      pct_list_sold, adom, sold_nu, sold_chg, 
      year_1, year_2, year_3, year_4, year_5, 
      year_6, year_7, year_8, year_9, year_10 
      FROM c33062"; 

Also im Grunde, würde Ich mag Hyperlinks für jede Tabelle machen, c33063, c33064, c33065 etc, dass beim Anklicken nennen würde, dass die Daten in die Vorlage Seite bestimmte Tabelle.

Was wäre der richtige Weg, um die FROM-Tabelle zu verknüpfen?

+0

A '$ _REQUEST' wäre wahrscheinlich am besten in diesem Fall. Stellen Sie nur sicher, dass der Wert vor der Verwendung von sql behandelt wird. –

+0

Wenn die Struktur der Tabellen identisch ist, warum haben Sie keine SINGLE-Tabelle und fügen ein zusätzliches Feld hinzu, um den "Tabellennamen" zu speichern? 'Wählen Sie * aus yourtable, wobei table_id = 'c33062'' viel einfacher zu handhaben ist. –

Antwort

0

Legen Sie den Tabellennamen als Variable in jedem Link fest und erhalten Sie diesen Variablenwert. zum Beispiel

  1. http://www.name.com?tabe=30063 für Tisch 30063

  2. http://www.name.com?tabe=30064 für Tisch 30064

und den Tabellenwert als $ table = $ _GET [ 'table'] erhalten;

dann diese Variable in Abfrage wie der folgenden Code verwenden:
$ query = „SELECT id, Jahr, price_avg_sold, price_sqft, pct_list_sold, adom, sold_nu, sold_chg, year_1, year_2, year_3, year_4, year_5, Jahr_6, Jahr_7, Jahr_8, Jahr_9, Jahr_10 von ". $ table;

0

Vorausgesetzt, dass Sie jede Tabelle auswählen möchten, basierend auf einer Benutzerauswahl von Links:

for($i=33062; $i<33081;$i++): 
echo '<li><a href="query.php?table=c'.[$i].'"> Link to c'.[$i].'</a></li>'; 
endfor; 

in query.php

$selected = $_REQUEST['table']; 
$query = "SELECT id, year, price_avg_sold, price_sqft, 
      pct_list_sold, adom, sold_nu, sold_chg, 
      year_1, year_2, year_3, year_4, year_5, 
      year_6, year_7, year_8, year_9, year_10 
      FROM $selected"; 

Wenn Sie das Ergebnis in der gleichen Seite sehen wollen:

if(isset($_GET['table'])): 
    $selected = $_GET['table']; 
    $query = "SELECT id, year, price_avg_sold, price_sqft, 
      pct_list_sold, adom, sold_nu, sold_chg, 
      year_1, year_2, year_3, year_4, year_5, 
      year_6, year_7, year_8, year_9, year_10 
      FROM $selected"; 
    //other codes 
endif; 
0

Angenommen, Ihre Tabellen haben genau die gleichen Attribute wie Sie wollen o Abrufen in SELECT-Anweisung, Sie können einfach Tabellennamen in eine Abfragezeichenfolge setzen und abrufen und in Ihrer $ query können Sie den Tabellennamen abrufen und aus der Bedingung einfügen.

http://example.com?table_name=c33062
http://example.com?table_name=c33062

in seinem Code,

$query = "SELECT <...columns...> FROM ".$_GET['table_name']; 
0

Warum erstellen Sie so viele Tabellen (21) mit dem gleichen Schema. Es ist eine schlechte Datenstruktur.
Wenn alle Tabellen, die denselben Zweck erfüllen, nur eine Tabelle erstellen und eine weitere Spalte mit dem Namen entity_name hinzufügen und den Wert dieses Felds mithilfe der Abfragezeichenfolge übergeben, um die Zeile dieser Entität abzurufen.Dazu:

ALTER TABLE c33062 ADD entity_name VARCHAR(64) NULL 

ausführen dann die Abfrage:

$entity_name = mysql_real_escape_string($_GET["entity_name"]); 
$query = "SELECT id, year, price_avg_sold, price_sqft, pct_list_sold, adom, sold_nu, sold_chg, year_1, year_2, year_3, year_4, year_5, year_6, year_7, year_8, year_9, year_10 FROM c33062 WHERE entity_name=". $entity_name; 

Und Sie Hyperlink wird wie folgt aussehen:

<a href="replacewithyourpage.php?entity_name=c33062">c33062</a> 
<a href="replacewithyourpage.php?entity_name=c33063">c33063</a>... 
Verwandte Themen