Komplette Spalte auslesen
Max
- php
Hallo,
ist es irgendwie mit PHP möglich eine Komplette Spalte von eine MySQL Datenbank auszulesen.
Gruß
Max
Hi,
ist es irgendwie mit PHP möglich eine Komplette Spalte von eine MySQL Datenbank auszulesen.
ja, genau so wie sämtliche anderen Datenbankzugriffe...
SELECT spalte FROM tabelle
und dann mit mysql_fetch_assoc und Konsorten über die Ergebnisse iterieren.
MfG
Rouven
Hallo Rouven,
ich habe jetzt folgendes:
<?php
$DatabasePointer = mysql_connect($DatabaseHost, $DatabaseUser, $DatabasePassword);
mysql_select_db($Database, $DatabasePointer);
$result = mysql_query("SELECT name FROM $Tabelle", $DatabasePointer);
while ($daten = mysql_fetch_assoc($result)) {
$aktiv = $daten[''];
}
?>
Doch das Script gibt nichts aus. Was ist falsch?
Hallo!
while ($daten = mysql_fetch_assoc($result)) {
$aktiv = $daten[''];
}
$daten[''] existiert hier nicht. Das einzige Arrayelement das in $daten vorhanden ist, ist 'name'.
Wenn das Script etwas ausgeben soll, dann musst du es ihm auch sagen. Ein echo oder print an der richtigen Stelle wirkt da oft Wunder.
mfg
frafu
Hallo,
ich habe das Script jetzt geändert, jedoch geht es immer nocht nicht. Es gibt einfach nichts aus.
Script:
<?php
$DatabasePointer = mysql_connect($DatabaseHost, $DatabaseUser, $DatabasePassword);
mysql_select_db($Database, $DatabasePointer);
$result = mysql_query("SELECT name FROM $Tabelle", $DatabasePointer);
while ($daten = mysql_fetch_assoc($result)) {
}
print $daten;
?>
Hi,
$result = mysql_query("SELECT name FROM $Tabelle", $DatabasePointer);
jetzt gibt es ein Result-Handle. Das Result-Handle enthält n Zeilen und eine Spalte namens 'name'.
while ($daten = mysql_fetch_assoc($result)) {
Hier in der Schleife gibt es das assoziative Array $daten, siehe
var_dump. Mit $daten['name'] kannst du den einzigen Eintrag auslesen
print $daten;
Hier bist du außerhalb (nach) der Schleife. Der Zeiger steht "auf dem letzten Datensatz). Wenn du zumindest $daten['name'] geschrieben hättest, dann sähest du den letzten Namen.
MfG
Rouven
Hallo Rouven,
das weis ich ja schon, aber ich will ja nicht einen Eintrag auslesen, sondern alle. Also ein Beispiel:
MySQL:
name adresse passwd
max teststraße1 1234
Rouven testallee3 9876
PHP-Datei:
(Alle Namen sollen in einem Drop Down feld sein, also <option></option>)
In ihrer Datenbank sind folgende User verfügbar: Max
Rouven
......
Hi,
das weis ich ja schon, aber ich will ja nicht einen Eintrag auslesen, sondern alle. Also ein Beispiel:
Genau, aber wenn du das weißt, dann hast du trotzdem noch irgendwo einen Denkfehler drin.
(Alle Namen sollen in einem Drop Down feld sein, also <option></option>)
Genau das wäre der Job für deine while-Schleife:
MfG
Rouven
Hi Rouven,
wie mache ich denn die while Schleife?
ich habe jetzt das:
while ($daten = mysql_fetch_assoc($result)) {
$aktiv = '<select><option>echo $daten['name']</option></select>';
}
und folgende Fehlermeldung:
Parse error: parse error, unexpected T_STRING in /xxx/xxx/test.php on line 45
Hi,
Parse error: parse error, unexpected T_STRING in /xxx/xxx/test.php on line 45
sorry, aber lies bitte einfach im Manual nach, da gibts Beispiele für Strings, die verschiedenen Arten von Quotes, Array+String, ...
MfG
Rouven
Hallo Rouven,
das ist mir klar, was dort beschrieben wird.
Nochmal ein Beispiel:
Sagen wir mal ich möchte einfach nur alle Einträge unter name anzeigen (ohne <option></option>). Dazu folgenden Quellcode:
while ($daten = mysql_fetch_assoc($result)) {
$aktiv = $daten['name'];
}
Das Problem, er gibt nur den Letzten Eintrag in der Spalte Name aus. Warum nicht alle?
Wenn er mir alle Anzeigen würde, wäre mein Problem gelöst.
Das Problem, er gibt nur den Letzten Eintrag in der Spalte Name aus. Warum nicht alle?
Hmpf. Warum sollte er? Du sagst ihm: aktiv = <Inhalt1>; aktiv = <Inhalt2>; ...
Warum sollte er sich was altes merken?? Entweder du legst die Inhalte in einem Array ab (wobei ich bei den Options den Sinn nicht sehe) oder du gibst den Inhalt eben direkt aus. Alles worauf es ankommt ist der richtige Einsatz von Concat-Operationen.
MfG
Rouven
echo $begrüßung;
$result = mysql_query("SELECT name FROM $Tabelle", $DatabasePointer);
jetzt gibt es ein Result-Handle. Das Result-Handle enthält n Zeilen und eine Spalte namens 'name'.
Nicht unbedingt. Im Fehlerfall gibt mysql_query() false statt eines Result-Handles zurück. Dies sollte nicht unterschlagen werden, da false für die nachfolgenden Fetch-Befehle ein ungültiges Argument darstellt, ganz zu schweigen davon, dass der weitere Programmablauf vermutlich unsinnig wird.
Auch beim Connect und beim Selektieren der Datenbank können Fehler auftreten, die nicht ignoriert werden sollten.
Ein Beispiel einer Abfrage mit Fehlerberücksichtigung gibt es im Handbuchkapitel zu MySQL.
echo "$verabschiedung $name";