(my)SQL Abfrage
aitee
- datenbank
Hi all,
ich habe bisher alle Felder in php "manuell" als html code dargestellt. Ich würde das nun gerne ändern und die Felder aus der DB auslesen.
Sagen wir ich habe eine Tabelle:
Testtabelle
Sagen wir sie hat folgende Felder:
Hauptfeld,
Nebenfeld,
Zusatzfeld
Sagen wir mich interessiert nicht der Inhalt sondern die Feldnamen, wie kriege ich dies abgefragt?
bisher habe ich in php folgendes getan:
$var = "select * from Testtabelle";
$qry = $mysql_query($var);
echo ($data[ ...
da is der knackpunkt ... wie greife ich darauf zu?
$data['*'] ?
Anders?
thx for help,
greetz der tee
wie du hast ne tabelle und weiß nicht wie die attribute heißen?
normaler weise machste das in SQL mit "DESCRIBE tabellenname;"
versuch es mal damit:
SHOW COLUMNS from tabelle;
oder mit der funktion die hier beschrieben ist
http://www.php.net/manual/de/function.msql-fieldname.php
versuch es mal damit:
SHOW COLUMNS from tabelle;
Ok, dass wäre, falls es klappt der erste Teil,
aber wie benutze ich das?
z.b. bei einer einfachen Ausgabe?
echo( ... ); ???
wie du hast ne tabelle und weiß nicht wie die attribute heißen?
normaler weise machste das in SQL mit "DESCRIBE tabellenname;"
Na klar weiss ich das, ich will aber meine Seite dynamisch erzeugen lassen und mir also die Namen und die Anzahl der Felder ausgeben lassen ... btw. ... wie kriege ich die Anzahl?
mit COUNT?
Moin!
bisher habe ich in php folgendes getan:
$var = "select * from Testtabelle";
$qry = $mysql_query($var);
echo ($data[ ...da is der knackpunkt ... wie greife ich darauf zu?
Wenn du dir mit var_dump($data) mal den Variableninhalt ausgeben läßt, wirst du feststellen, dass die Spaltennamen der DB in der Variablen schon drinstehen (jedenfalls wenn du mysql_fetch_array() oder mysql_fetch_assoc() benutzt, um nach dem Query die DB auszulesen).
Auf diese Arrayschlüssel kannst du zugreifen.
Welche Schlüssel es gibt, sagt dir beispielsweise die Funktion array_keys(): http://de3.php.net/manual/de/function.array-keys.php
Und du kannst auch alle Elemente eines Arrays nacheinander durchgehen und dabei die Werte und Schlüssel erfahren, wenn du foreach benutzt:
foreach ($data as $schluessel => $wert)
{
echo "In $data['$schluessel'] steht: $wert<br>";
}
-> Probier diesen Code testweise mal aus. Herauskommen sollte ein Text wie:
In $data['feldname'] steht: feldinhalt
- Sven Rautenberg
Huhu aitee
$qry = $mysql_query($var);
hier ist noch ein gravierender Fehler, Du möchtest ja die Funktion
mysql_query benutzen und nicht den Wert von $mysql_query als
Funktionsnamen interpretieren.
Das geht sogar, siehe dazu
http://www.php.net/manual/en/functions.variable-functions.php
Du könntest also schreiben
$mysql_query = 'mysql_query';
$qry = $mysql_query($var);
Das wäre in diesem Fall natürlich blanker Unsinn!
Eigentlich müsstest Du folgende Fehlermeldung bekommen:
Fatal error: Call to undefined function: () in DEIN_SKRIPT
Wie hast Du den error_level eingestellt, dass das Skript nicht an dieser Stelle mit der genannten Fehlermeldung abgebrochen wird?
Evtl. hast Du den Code ja auch manuell in Dein Posting getippt.
Besser ist es, wenn Du dabei mit Copy+Paste arbeitest, da ansonsten
durch Tippfehler noch mehr und andere Fehler entstehen können.
Viele Grüße
lulu