phpbar.de logo

Mailinglisten-Archive

[php] SQL-Abfrage (schwer)

[php] SQL-Abfrage (schwer)

Stefan Engelhardt Stefan.Engelhardt_(at)_stud.fh-hannover.de
Mon, 7 Feb 2000 19:50:23 +0100


> Kann man irgendwie eine Anfrage machen, bei der folgendes möglich ist:
>
> Angenommen wir haben folgende Tabelle:
>
>            Spalte1   Spalte2   Spalte3   Spalte4   Spalte5
> Zeile1     aaa         aaa         aaa          bbb         aaa
> Zeile2     bbb        aaa         aaa          aaa         aaa
> Zeile3     aaa         aaa         aaa          aaa         aaa
> Zeile4     aaa         aaa         bbb          aaa         aaa
> Zeile5     aaa         aaa         aaa          aaa         aaa
> Zeile6     aaa         bbb         aaa          aaa         aaa
>
>
> Nun hätte ich gerne irgendwie alle Spaltennamen, in denen bbb
> steht - ist
> das möglich?
geht vielleich auch nur mit SQL, aber mit php wuerde ich folgendes
vorschlagen:

$query="SELECT count(*) FROM Tabelle WHERE Spalte1='bbb'";
$result=mysql_query($query);
If (mysql_fetch_row($result)>0) {
	echo "In Spalte1 kommt bbb vor!\n<br>"; }

Diese Abfrage macht man dann fuer alle Spalten. Man kann natuerlich auch die
Spaltennamen vorher in ein Array packen oder, was noch flexibler ist, sie
vorher auslesen. Leider komme ich gerade nicht an meine lokale php-Datei
ran, deswegen ist der Code vielleicht nicht ganz 100%-ig. Mit SQL komme ich
auf jeden Fall ueber "DESCRIBE Tabelle" an die Spaltennamen, um sie dann
einzeln auf Vorkommen von "bbb" zu ueberpruefen, dass waere dann die
flexibelste Loesung.


> 2. Problem:
>
>            Spalte1   Spalte2
> Zeile1     50         100
> Zeile2     344        545
> Zeile3     345        300
> Zeile4     67         545
> Zeile5     56         50
>
> Nun will ich alle Zeilen (bzw. einfach nur die Zeilen zurückgelifert
> bekommen), bei denen Spalte 1 >= Spalte2
>
> Wie muss ich diese Afrage machen?

SELECT * FROM Tabelle WHERE Spalte1>Spalte2;

Ich bin kein Datenbaenker, aber das finde ich nich' so schwer. ;-)

>
> Und wenn ich gerade dabei bin, kann ich es bei SQL irgendwie
> so machen, dass
> ich auf die Spalten wie ein Array zugreifen kann? Also
> angenommen ich habe
> folgende Tabelle:
>
>            Spalte1x   Spalte1y   Spalte1z   Spalte2x
> Spalte2y   Spalte2z
> Zeile1     aaa           aaa         aaa              bbb         aaa
> aaa
> Zeile2     bbb          aaa         aaa              aaa         aaa
> aaa
> Zeile3     aaa           aaa         aaa              aaa         aaa
> aaa
> Zeile4     aaa           aaa         bbb              aaa         aaa
> aaa
> Zeile5     aaa           aaa         aaa              aaa         aaa
> aaa
> Zeile6     aaa           bbb         aaa              aaa         aaa
> aaa
>
>
> Dann will ich einfach auf die Tabelle Zugreifen Spalte1[x]=ccc
>
> Ist das möglich?
Meinst Du nur lesend oder lesend und schreibend? Lesend ist kein Thema,
schreibend ziemlich aufwendig, denke ich.

Stefan



php::bar PHP Wiki   -   Listenarchive