Hallo,
ich bin noch recht frisch in PHP, bringe mir das gerade bei.
Um die Datenmenge einer MySQL-Abfrage auf das nötige Minimum zu reduzieren, dachte ich dass ich auf Werte eines Arrays, das ebenfalls aus einer MySQL-Abfrage stammt, zugreifen und so nur das aus der Datenbank fische, das ich auch wirklich brauche. Aber irgendwie krieg ich das nicht hin, und das was ich bisher im Internet dazu gefunden habe, half mir nicht wirklich weiter.
Meine erste Abfrage:
Meine zweite Abfrage (mit dem Versuch auf das "$teaser"-Array zuzugreifen, das aber nicht klappt, weil ich noch nicht verstehe wie es geht...):
Die Struktur des Arrays "$teaser" sieht ungefähr wie folgt aus:
Ich glaube dass ich grundsätzliche Verständnisprobleme habe, wie ich überhaupt an den Wert "id" rankomme.
Oder ist mein Denkansatz sowieso falsch und man löst das Problem besser ausschließlich in MySQL ohne die Krücke über das Array der ersten Abfrage? Aber wenn, wie mach ich das denn?
Könnt Ihr mir helfen und erklären, wie ich sowas lösen kann?
Würde mich wirklich sehr freuen. Vielen Dank.
Liebe Grüße,
pyretta
ich bin noch recht frisch in PHP, bringe mir das gerade bei.
Um die Datenmenge einer MySQL-Abfrage auf das nötige Minimum zu reduzieren, dachte ich dass ich auf Werte eines Arrays, das ebenfalls aus einer MySQL-Abfrage stammt, zugreifen und so nur das aus der Datenbank fische, das ich auch wirklich brauche. Aber irgendwie krieg ich das nicht hin, und das was ich bisher im Internet dazu gefunden habe, half mir nicht wirklich weiter.
Meine erste Abfrage:
PHP:
//ARTIKEL-TEASER
$teaser = array();
$art_teaser = mysql_query("SELECT id,pid,tstamp,title,author,teaser,af_criteria,createdate FROM `tl_article` WHERE `af_enable`=1 AND `published`=1 ORDER BY title;") or die("Anfrage für 'tl_article' war nicht erfolgreich");
while($obj_teaser = mysql_fetch_object($art_teaser)) {
$teaser[] = $obj_teaser;
}
Meine zweite Abfrage (mit dem Versuch auf das "$teaser"-Array zuzugreifen, das aber nicht klappt, weil ich noch nicht verstehe wie es geht...):
PHP:
//ARTIKEL-INHALTE
$content = array();
$art_content = mysql_query("SELECT id,pid,type,text,headline,html FROM `tl_content` WHERE `invisible`='' AND `type` = 'text' OR `type` = 'html' OR `type` = 'headline' AND pid IN (".$teaser[]['id'].") ORDER BY pid;") or die("Anfrage für 'tl_content' war nicht erfolgreich");
while($obj_content = mysql_fetch_object($art_content)) {
$content[] = $obj_content;
}
Die Struktur des Arrays "$teaser" sieht ungefähr wie folgt aus:
Code:
array(150) {
[0]=>
object(stdClass)#1 (8) {
["id"]=>
string(3) "143"
["pid"]=>
string(3) "135"
["tstamp"]=>
string(10) "1358779568"
["title"]=>
string(14) "Lorem Ipsum...."
["author"]=>
string(1) "7"
["teaser"]=>
string(1633) "Lorem Ipsum...."
["af_criteria"]=>
string(106) "Lorem Ipsum...."
["createdate"]=>
string(10) "1358696220"
},
[1]=>
object(stdClass)#2 (8) {
["id"]=>
string(3) "143"
["pid"]=>
string(3) "135"
["tstamp"]=>
string(10) "1358779568"
["title"]=>
string(14) "Lorem Ipsum...."
["author"]=>
string(1) "7"
["teaser"]=>
string(1633) "Lorem Ipsum...."
["af_criteria"]=>
string(106) "Lorem Ipsum...."
["createdate"]=>
string(10) "1358696220"
}
....}
Ich glaube dass ich grundsätzliche Verständnisprobleme habe, wie ich überhaupt an den Wert "id" rankomme.
Oder ist mein Denkansatz sowieso falsch und man löst das Problem besser ausschließlich in MySQL ohne die Krücke über das Array der ersten Abfrage? Aber wenn, wie mach ich das denn?
Könnt Ihr mir helfen und erklären, wie ich sowas lösen kann?
Würde mich wirklich sehr freuen. Vielen Dank.
Liebe Grüße,
pyretta