query

jhaustein
durch input befehl erhalte ich folgende ausgabe eines arrays in einer session

Array
(
[box4] =>
[box5] =>
[box6] =>
[schulf] => f1
[box1] =>
[box2] => checkbox2
[box3] =>
)

jetzt möchte ich es in eine query bekommen in der art

... where schulf=f1 and box2=checkbox2 ..
Chris Hunter
code:
1:
... where schulf='.$_SESSION[array][schulf].' and box2='.$_SESSION[array][box2].' ..
jhaustein
hi chris vielen dank prob is nur, dass das oben nur ein bsp. isgesamt werden es nachher 190 checkboxen - frag bitte nicht warum - kann ich auch nicht ändern - wie mache ich es denn dann - kann man nicht mit einem befehl die ($_SESSION) einlesen

gruss
jörg
Chris Hunter
oh jeeee.

stell dir den querystring doch vorher in einer foreach schleife zurecht.
sorery bin wortkarg mir gehts grad gar net so gut...
jhaustein
hi chris - das ist ja mein prob - kannst du mir da helfen

gruss und gute besserung bzw alles gute
Chris Hunter
mmmhhh ja. mal schauen..

also hier die forerach schleife wie du sie brauchst

php:
1:
2:
3:
4:
5:
<?php foreach ($array as $key => $value) 
{
  $where.="$key='$value' and ";
}
$where=substr($where0strlen($where)-4); ?>


zugegeben die substr sache ist recht doof. man könnte die query stzrings auch alle ine neues array einlesen und dann später mit implode und den trennzeichen ' and ' zusammensetzen.. bin zur zeit ein wenig sehr verwirrt....aber oben das sollte den zweck erfüllen...

ach einsetzen tust es dann so
mysql_query("select * from table WHERE ".$where);


wichtig hierbei ist halt das die checkboxen genau so heißen wie die datenbankfelder. das muss halt stimmig sein, sonst bringts recht wenig. also ergebnismenge < 1 *g*
jhaustein
hi

das ist meine fehlermeldung
Warning: Invalid argument supplied for foreach() in C:\xxampp\xampp\htdocs\frames2\frames\gesamt.php on line 19

bezieht sich auf diese zeile

<?php
echo "<pre>"; print_r($_SESSION); echo "</pre>";

mysql_connect("localhost", "jhaustein", "t");
mysql_select_db("nds1");
foreach ($array as $key => $value) ----- hier ist die zeile 19
{
$where.="$key='$value' and ";
}
$where=substr($where, 0, strlen($where)-4);
mysql_query("select * from test WHERE ".$where);
?>
jhaustein
okay das habe ich hinbekommen - bloss wie bekomme ich die einträge raus, die keinen inhalt haben - wenn z.b. die box3 nicht markiert wurde , dann soll sie auch nicht in der query stehen
Chris Hunter
php:
1:
2:
3:
4:
5:
6:
<?php foreach ($array as $key => $value) 
{
  if(strlen($value)>0)
  $where.="$key='$value' and ";
}
$where=substr($where0strlen($where)-4); ?>


oder

php:
1:
2:
3:
4:
5:
6:
<?php foreach ($array as $key => $value) 
{
  if($value != '')
  $where.="$key='$value' and ";
}
$where=substr($where0strlen($where)-4); ?>
daHooligan
Obacht OT:

was macht man mit 150 Checkboxes?
Chris Hunter
diese frage(kicher @ hool [dieb]) stelle ich mir allerdings auch...

schreib mal was du da machst jörg... vielleicht gibt es da einen viel einfacheren weg den du nicht bedacht hast und der weniger rechenaufwendig ist...

also ich hab im meinem leben weder 190 checkboxes gesehen, noch kann ich mir vorstellen für was sie gebraucht werden....
Wolf
Zitat:
was macht man mit 150 Checkboxes?


Naja, wie wärs mit
"Welchem Teletubbie bist du am ähnlichsten?"
Intelligenztest
Umfrage
...
großes Grinsen
Prophet
Bevor er 190 Checkboxes verarbeitet sollte er sich gedanken machen wie ein blätter funktion funktioniert... kichern
Chris Hunter
was mir da am meisten angsat macht ist die tatsache das die 190! chweckboxes in ein SELECT Query eiongefügt werden sollen.

d.h. eine tabelle mit mehr als 190 feldern. d.h. 190 schlüsselfelder. d.h. puuuhhhh
chrigu99
Zitat:
Original von Chris Hunter
was mir da am meisten angsat macht ist die tatsache das die 190! chweckboxes in ein SELECT Query eiongefügt werden sollen.

d.h. eine tabelle mit mehr als 190 feldern. d.h. 190 schlüsselfelder. d.h. puuuhhhh


lol... ich will ja mal nicht böse sein aber unser lieber jhaustein =)

stell uns mal dein projekt vor...