Neuigkeiten:

still alive...

Hauptmenü

Verschiedene Zeilen unterscheiden

Begonnen von roli, 18. Juni 2006, 20:32:26

Vorheriges Thema - Nächstes Thema

roli

Hallo
Irgendwie habe ich einen Knopf in der Leitung.
Also ich habe eine table, die heisst settings. Darin speichere ich alle Settings wie, Funktionen on/off etc.
Sie hat folgende Spalten: ID,DESC,WERT
Und hat bislang folgenden Inhalt: 1,Oezeiten,1 sowie 2,Adresse,0
Nun meine Frage: Wir kann ich mit nur einem select statement alle Daten aus dieser table auslesen, so dass ich alle Daten zur Verfügung habe?
Wie unterscheide ich im Code, welche Zeile, resp. Werte ich brauche? Weil theoretisch müsste ich ja im select die ID angeben, um genau eine Zeile auslesen zu können? Mache ich dies mit einer while-Schlaufe und Variablen?
Zum Beispiel möchte ich so gerne prüfen, ob die Adresse den Wert 0 trägt
 

$sqlbefehl= \"Select * FROM $tab_settings\";
$getdata   = mysql_query($sqlbefehl, $serverid);
$daten  = mysql_fetch_array ($getdata);

 
 - Editiert von roli am 18.06.2006, 21:38 -
 - Editiert von roli am 18.06.2006, 21:43 -

thadon



$sqlbefehl= \"Select * FROM $tab_settings\";
$getdata   = mysql_query($sqlbefehl, $serverid);
while ($daten  = mysql_fetch_array ($getdata))
{
$id = $daten[\'ID\'];
$desc = $daten[\'DESC\'];
$wer = $daten[\'WERT\'];
}




mahe

so werden die Variablen immer überschrieben ...
ich würde eher
$desc[$id] = $daten[\'desc\'] vorschlagen
und dann einfach per $desc[die id die du willst] ansprechen.
Oder $settings[$desc] = $daten[\'wert\'] ...

http://blog.mahe.at\" rel=\"external nofollow\">http://blog.mahe.at/wp-content/uploads/2007/06/88x31_1.jpg\" alt=\"88x31_1.jpg\">


Ja, diese Signatur dient zur Werbung!


Und dass ich meine Posts wiederfinde ...


roli


Original von mahe so werden die Variablen immer überschrieben ...
ich würde eher
$desc[$id] = $daten[\'desc\'] vorschlagen
und dann einfach per $desc[die id die du willst] ansprechen.
Oder $settings[$desc] = $daten[\'wert\'] ...
[/quote]
$settings[$desc] = $daten[\'wert\'] : So bringt er mir die Werte der ganzen Spalte anstelle die ganze Zeile
$desc[$id]: So bringt er gar nichts...

mahe

Es ist immer die Frage was du im Skript brauchst ...
und er bringt dir immer nur den Inhalt einer Zeile.


Allerdings ist hier der Nachteil: Du musst wissen was unter der ID hinterlegt ist, und kannst nicht sicher sagen dass hinter der ID 1 die Oezeiten und hinter der ID 2 die Adresse liegt. Da müsstest du dann mit noch einer Schleife alles durchgehn um das rauszufinden.


 
Hier sagst du: ich will Oezeiten und kriegst den Wert bzw. ich will Adresse und kriegst den entpsrechenden Wert /uploads/emoticons/icon_e_wink.gif.3167d127940f44558fbf1ccd9b6d60a9.gif\" alt=\";-)\" />
So würde ich es aber nur machen wenn ich mehrere Daten aus der Tabelle im Skript brauche.
Will ich im Skript wirklich nur einmal wissen ob Adresse den Wert 0 hat dann würd ich das einfach mit einem Query tun: SELECT COUNT(id) as check WHERE desc=\'adresse\' AND wert=\'0\';
und dann abfragen ob $ergebnis[\'check\'] > 0
Im übrigen würde ich davon abraten \"desc\" als Name für eine Spalte zu nehmen, da dies zu Problemen führen kann. DESC ist ein Keyword in MySQL (für die Sortierung /uploads/emoticons/icon_e_wink.gif.3167d127940f44558fbf1ccd9b6d60a9.gif\" alt=\";-)\" />)

http://blog.mahe.at\" rel=\"external nofollow\">http://blog.mahe.at/wp-content/uploads/2007/06/88x31_1.jpg\" alt=\"88x31_1.jpg\">


Ja, diese Signatur dient zur Werbung!


Und dass ich meine Posts wiederfinde ...


roli

Hallo Mahe
Ja nun sehe ich durch.
Was ich machen möchte, sind verschiedene Einstellungen auf ihren Wert prüfen und anhand dieser Aktionen ausführen. Doch ich wollte verhindern, dass ich x-mal das Select statement schreiben muss, um die einzelnen Werte abzufragen. In diesem Falle geht das COUNT statement nicht, da ich wissen möchten was für einen Wert eine Zelle hat und nicht, ob sie 0 ist.
Das mit dem desc habe ich berücktsichtigt, ich brauche in der DB \'description\'.
Gruess

all your base are belong to us / Discord