Zum Inhalt springen

Array in einer SQL-Abfrage benutzen


Empfohlene Beiträge

Hallo,

ich habe hier nun das naechste problem. soweit laeuft alles, jedoch moechte ich nun, dass man schnell neue terms hinzufuegen kann, und die dann in der sql abfrage abgefragt werden, ohne recht viel aufwand.

ich hab hier also:

$term = array ("blablabla", "bla") (beliebig erweiterbar);

und in der SQL-Abfrage:

$dbquery = mysql_query("SELECT start_time, end_time, Rooms.handle AS ro

om FROM Schedule, ScheduleTypes, Rooms, Terms where (Rooms_roomID IS NU

LL OR Rooms_roomID=roomID) and ScheduleTypes_typeID=typeID and Schedule

Types.handle=\"Open Lab\" and Terms_termID=termID and Terms.handle LIK

E '%".$term."%' and weekdays LIKE '%".$day_letter."%'");

so nun hab ich das problem, dass das ganze funktioniert, wenn ich es oben nur als variable hab, aber nicht als array, jedoch funktioniert es nicht, sobald ich oben die Variable als array gespeichert hab. wie kann ich das nun am besten loesen? Ich habe es auch schon versucht ueber eine foreach oder for schleife und dann in der abfrage $term[$i] anzugeben, jedoch funktioniert das nicht so wirklich.

Vielen Dank

Dany

Link zu diesem Kommentar
Auf anderen Seiten teilen

Hi,

also es kommt leider keine fehlermeldung :( sondern er fuehrt dann einfach die Abfrage nicht durch :(

der code sieht so aus

$term = array ("Winter 2007 Exam week 2 ");

//------------------------------------------------------------------------------

-----

$days = array(

"M" => "Monday",

"T" => "Tuesday",

"W" => "Wednesday",

"H" => "Thursday",

"F" => "Friday",

"S" => "Saturday");

foreach ($days as $day_letter => $day_name) {

$dbquery = mysql_query("SELECT start_time, end_time, Rooms.handle AS room FROM S

chedule, ScheduleTypes, Rooms, Terms where (Rooms_roomID IS NULL OR Rooms_roomID

=roomID) and ScheduleTypes_typeID=typeID and ScheduleTypes.handle=\"Open Lab\" a

nd Terms_termID=termID and Terms.name LIKE '%".$term."%' and weekdays LIKE '%".

$day_letter."%'");

// reformat the information from the DB in correct order given in the SELECT sta

tement

if ($dbquery) {

$times_array = mysql_fetch_row($dbquery);

} else {$times_array = "";}

while ($times_array != "")

{

echo "<td>".$day_name." </td>\t"

;

echo "<td>".$times_array[0]." </td>\t";

echo "<td>".$times_array[1]." </td>\t";

echo "<td>".$times_array[2]." </td>\t";

// ask for availableness by checkboxes, default setting is 'NO'

echo "<td><INPUT TYPE=\"checkbox\" NAME=\"".$day_name."_".$times

_array[0]."_".$times_array[1]."_".$times_array[2]."\"></td></tr>\n";

$times_array = mysql_fetch_row($dbquery);

}

}

?>

ich habe auch schon eine for schleife oder eine foreach schleife herumgepackt, dann gibt er mir aber alles moegliche aus.. was aber definitiv nicht richtig ist :(

Link zu diesem Kommentar
Auf anderen Seiten teilen

*ohne jetzt alles im detail angeguckt zu haben*

gib doch nach dem zusammenbasteln der sql-anweisung einfach mal den sql-string (in jedem schleifendurchlauf) aus

...$dbquery = mysql_query("SELECT start_time, end_time, Rooms.handle AS room FROM S
chedule, ScheduleTypes, Rooms, Terms where (Rooms_roomID IS NULL OR Rooms_roomID
=roomID) and ScheduleTypes_typeID=typeID and ScheduleTypes.handle=\"Open Lab\" a
nd Terms_termID=termID and Terms.name LIKE '%".$term."%' and weekdays LIKE '%".
$day_letter."%'");

echo $dbquery . "<br>";

// reformat the information from the DB in correct order given in the SELECT sta
tement
...[/PHP]

und versuch diese sql-anweisungen manuell auszuführen um zu sehen ob diese überhaupt korrekt sind.

lg

jasso

Link zu diesem Kommentar
Auf anderen Seiten teilen

ok, ich wusste nicht ob es jemanden interessiert, bzw ob des nich irgendwie ne bloede frage war. also ich habs jetz so geloest:

<?

// ----------------------------Here you can fill in the terms-------------------

------

$term = array ("W07x1" => "Winter 2007 Exam week 1",

"W07x2" => "Winter 2007 Exam week 2");

//------------------------------------------------------------------------------

-----

$days = array(

"M" => "Monday",

"T" => "Tuesday",

"W" => "Wednesday",

"H" => "Thursday",

"F" => "Friday",

"S" => "Saturday");

foreach ($term as $term_long => $term_name)

{

foreach ($days as $day_letter => $day_name) {

$dbquery = mysql_query("SELECT start_time, end_time, Rooms.handle AS room FROM S

chedule, ScheduleTypes, Rooms, Terms where (Rooms_roomID IS NULL OR Rooms_roomID

=roomID) and ScheduleTypes_typeID=typeID and ScheduleTypes.handle=\"Open Lab\" a

nd Terms_termID=termID and Terms.handle LIKE '%".$term_long."%' and weekdays LIK

E '%".$day_letter."%'");

so funktionierts auf jeden fall.. weiss auch nicht ob das ne gute loesung is, aber hauptsache es funktioniert *ggg*

Link zu diesem Kommentar
Auf anderen Seiten teilen

Dein Kommentar

Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.

Gast
Auf dieses Thema antworten...

×   Du hast formatierten Text eingefügt.   Formatierung wiederherstellen

  Nur 75 Emojis sind erlaubt.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Editor leeren

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

Fachinformatiker.de, 2024 by SE Internet Services

fidelogo_small.png

Schicke uns eine Nachricht!

Fachinformatiker.de ist die größte IT-Community
rund um Ausbildung, Job, Weiterbildung für IT-Fachkräfte.

Fachinformatiker.de App

Download on the App Store
Get it on Google Play

Kontakt

Hier werben?
Oder sende eine E-Mail an

Social media u. feeds

Jobboard für Fachinformatiker und IT-Fachkräfte

×
×
  • Neu erstellen...