Seite 1 von 1
Mehrere Queries in einem Modul
Verfasst: Do 4. Aug 2005, 12:39
von phpchris
Hallo alle zusammen...
Ich schreibe gerade an einem Modul, bei dem es notwendig ist, mehrere Queries auszuführen.
Kann es sein, dass ich innerhalb eines Modules nur einmal
ausführen und dann in der While-Schleife auf die Werte zugreifen kann?
Muss ich zwei Instanzen der Klasse bilden, um 2 Queries abzufeuern?
Das kann ich mir nicht vorstellen, da ich ansonsten sicherlich 5-6 Instanzen in diesem Modul brauchen werde...
Verfasst: Do 4. Aug 2005, 12:45
von emergence
du hast ne while schleife wie hier
und möchtest innerhalb dieser schleife ein weiteres query ausführen benötigst du eine andere db instanz... sonst wird die while schleife abgebrochen...
führst du mehrere querys hintereinander aus benötigst du keine andere instanz... (wenn du die felder halt nicht benötigst...)
Verfasst: Do 4. Aug 2005, 12:48
von phpchris
Ich lese am Anfang des Skriptes Einstellungen aus:
Code: Alles auswählen
$setting_query = "SELECT name, value FROM ".$cfg['tab']['ankauf_settings'];
$db->query($setting_query);
while($db->next_record())
{
$_settings_name = $db->f('name');
$settings[$_settings_name] = $db->f('value');
}
Weiter unten möchte ich Einträge auslesen:
Code: Alles auswählen
$timeframe_from = date('Y-m-d', mktime(0, 0, 0, date("m"), date("d")-($between*7), date("Y")));
$timeframe_to = date('Y-m-d');
$_active_query = "SELECT `id`, `title` FROM ".$cfg['tab']['ankauf_eintraege']. "
WHERE `user`='".$user_id."' AND `datum` BETWEEN '".$timeframe_from."' AND '".$timeframe_to."'
AND `is_granted`='1'";
$db->query($_active_query);
while($db->next_record())
{
$_edit_html .= "<tr><td><a href='".$sess->url()."&action=view_entry&id=".$db->f('id').
"' class='ankauf_link'>".$db->f('title')."</a></td></tr>\n";
}
phpMyAdmin findet mit dem ausgegebenen Query Resultate, aber mein Modul nicht.
Vielleicht eine Idee?
Verfasst: Do 4. Aug 2005, 13:02
von timo
schau mal ins errorlog und lass dir sicherheitshalber das SQL-Statement mal ausgeben...
Verfasst: Do 4. Aug 2005, 13:03
von emergence
ich würde mir die queries nochmals genau ansehen
eventuell mittels echo ausgeben und in der while schleife vielleicht auch noch ein echo "irgendwas"; reingeben...
vielleicht hast dich bei der variablen ausgabe auch einfach nur verschrieben... -> $_edit_html
etc..... da kann ich aber nur raten...
grundsätzlich funkt das aber ohne probleme
ich hab da mal ein kleines script für nen ganz anderen zweck geschrieben, aber es ist klein genug damit die verschachtelungen ersichtlich werden...
Code: Alles auswählen
<p>SHOW AREAS...</p>
<?php
$db = new Db_Contenido;
$db2 = new Db_Contenido;
$db3 = new Db_Contenido;
$sql = "SELECT * FROM ".$cfg["tab"]["area"]." WHERE parent_id = '0'";
$db->query($sql);
while($db->next_record()) {
echo "<b>".$db->f("name")."</b> - ".$db->f("idarea")."<br>";
$sql = "SELECT * FROM ".$cfg["tab"]["actions"]." WHERE idarea = '".$db->f("idarea")."'";
$db3->query($sql);
while($db3->next_record()) {
echo "".$db3->f("name")." - ".$db3->f("idaction")."<br>";
}
$sql = "SELECT * FROM ".$cfg["tab"]["area"]." WHERE parent_id = '".$db->f("name")."'";
$db2->query($sql);
while($db2->next_record()) {
echo "--<b>".$db2->f("name")."</b> - ".$db2->f("idarea")."<br>";
$sql = "SELECT * FROM ".$cfg["tab"]["actions"]." WHERE idarea = '".$db2->f("idarea")."'";
$db3->query($sql);
while($db3->next_record()) {
echo " ".$db3->f("name")." - ".$db3->f("idaction")."<br>";
}
}
}
?>
Verfasst: Do 4. Aug 2005, 13:16
von phpchris
Danke erstmal für die Antworten.
Das SQL-Statement, dass er ausgibt:
Code: Alles auswählen
SELECT e.id, e.title, k.desc FROM con_ankauf_eintraege e INNER JOIN con_ankauf_kategorien k ON e.category=k.id WHERE e.user='9' AND e.datum BETWEEN '2005-06-09' AND '2005-08-04' AND e.is_granted='1'
Im errorlog ist kein Eintrag...
Wenn ich im while ein echo schreibe, gibt er es nicht aus.
Ich denke also, dass ein leeres Resultset zurückkomt, obwohl im phpMyAdmin bekomme ich 2 Ergebnisse...
Verfasst: Do 4. Aug 2005, 13:18
von phpchris
Halt...
Ich nehme alles zurück!
Falsche Datenbank, in der Datenbank, in der ich bin, ist das Resultset wirklich leer

...
Der Post ist ein Fall für den Müll, sorry!
Verfasst: Do 4. Aug 2005, 13:20
von emergence
ein fall für den müll ? nein
wenn die frage wieder mal auftauchen sollte kann man auf dieses posting verweisen...
Verfasst: Do 4. Aug 2005, 13:26
von phpchris
Oder so
Trotzdem Danke...