phpbar.de logo

Mailinglisten-Archive

[php] Grosse datenbanken.... !?

[php] Grosse datenbanken.... !?

Thomas Feyrer Dante_(at)_altmuehlnet.de
Fri, 09 Apr 1999 15:55:00 +0200


At 15:16 09.04.99 +0200, you wrote:
>hi....
>
>>Also die Abfrage oben ist extrem unrentabel und eigentlich nur für den
>>Admin interresant (war ja auch nur ein Bsp.)
>>Ausserdem hab ich was vergessen, richtig müsste es lauten:
>>mysql_query( "SELECT * FROM artikel,gebote,user WHERE
>>artikel.artikelid=gebote.artikelid AND gebote.userid=user.userid AND
>>artikel.type='bild'" );
>
>wieso ist die unrentabel ?

ganz einfach, da du wirklich alles aus der datenbank rausholst, was
irgendeine bedeutung hat...

>wie könnte man das denn besser lösen ?

immer nur das selectieren, was man wirklich braucht, also z.B. wenn man
eine Übersicht braucht, bei der man zu einem bestimmten artikel die gebote
und deren user braucht, email und adresse weglassen... da sie ja unnötig
sind, und vor allem die anderen user nichts angehen

>>Das kommt auf die Tabellen-Definition an, wenn du z.b. folgendes hast:
>>artikel: artikelid, type, beschreibung, startpreis
>>gebote: artikelid, userid, gebot
>>user: userid, name, email, adresse
>>dann die obere ausgabe nun in $result eingelesen wurde ein:
>>while( $row = mysql_fetch_row( $result ) )
>>dann hättest du bei jedem durchlauf von while im array $row folgendes:
>>$row = array( "artikelid", "type", "beschreibung", "startpreis",
>>"artikelid", "userid", "gebot", "userid", "name", "email", "adresse" );
>>durch ein:
>>list( $artikelid, $type, $beschreibung, $startpreis, $artikelid, $userid,
>>$gebot, $userid, $name, $email, $adresse ) = $row;
>>könntest du dann die mehrfach vorkommenden eliminieren...
>
>hmm gibts bei dem array irgentwelche bezugsname zb das ich wenn es gebraucht
>wird
>dann aus dem array mit dem arrayindex zb name dann den manen ausgeben kann ?
>oder ist mann da auf die numerische ausgabe der arrays beschränkt also dass
>man stelle 9 zuserst in die variable $name ausgeben muss ?

nein, man kann auch anstatt mysql_fetch_row ein mysql_fetch_array
verwenden, dadurch würde ein assoziatives array erzeugt, wobei der name der
tabellenspalten als key dient, allerdings weiß ich nicht, ob das
funktioniert, da ja mehrere tabellenspalten den gleichen namen tragen...
wenn er dort auch die gleichen eliminiert, kannst halt dann mit
$row[beschreibung] auf die beschreibung des artikels zurückgreifen...

>ich sehe schon das ganze ist komplizierter als ich gedacht habe :-) na
>immberhinn lauft das user interface schon ....

Glückwunsch

Gruss
  Domas



php::bar PHP Wiki   -   Listenarchive