[PHP] Problem mit Abfrage

Dieses Thema im Forum "Webentwicklung" wurde erstellt von Dark|pUM4, 14. März 2009 .

Schlagworte:
Status des Themas:
Es sind keine weiteren Antworten möglich.
  1. 14. März 2009
    Problem mit Abfrage

    Hallo Leute,

    ich habe eine Datenbankabfrage, dabei bekomme ich zb folgendes Ergebnis:

    12||15||17||26 --> Das sind ID's die ich hier gesammelt abspeichere

    Nun Zerlege ich diese Teile wie folgt:
    PHP:
    if(!empty( $altersgruppe )) {
            
    $arrayalter = explode ( "||" $altersgruppe );
            
    $n = 0 ;
            foreach(
    $arrayalter  as  $idalter ) {
            
            
            }
        }
    Und dann möchte ich jedes $idalter in eine neue Abfrage einbauen wie hier:
    PHP:
    $alter = mysql_query ( "SELECT * FROM present_altersgruppe ORDER BY id" );
                while(
    $tk = mysql_fetch_array ( $alter )) {
                            if(
    $idend  ==  $tk [ 'id' ])     $gruppe .=  '<option selected="selected" value="' . $tk [ 'id' ]. '">&nbsp; - ' . $tk [ 'name' ]. '</option>' ;
                            else 
    $gruppe .=  '<option value="' . $tk [ 'id' ]. '">&nbsp; - ' . $tk [ 'name' ]. '</option>' ;
                }
          
          
          echo 
    '<select name="altersgruppe[]" size="5" multiple="multiple">' . $gruppe . '</select>' ;
    Mein Problem ist es nun, dass ich bei der Abfrage nur den letzten Wert der der $idalter erhalten! Wenn ich die Datenbankabfrage in den foreachberiech einbaue dann zeit es mir alles doppelt an!

    Könnt ihr mir weiterhelfen wie ich diese beiden Schleifen richtig verbinde?

    DANKE --> BW gibts wie immer
     
  2. 14. März 2009
    AW: Problem mit Abfrage

    wenn du eine datenbankabfrage machst und bekommst das ergebnis in dieser form: 12||15||17||26 hast du meiner meinung nach schon vorher was falsch gemacht, oder ein gedankenfehler gehabt.

    daher wäre evtl interessant wie deine abfrage für die id aussieht. ansonsten kannst du nach
    $arrayalter=explode("||", $altersgruppe);
    dein array mal ausgeben ob auch alle einträge vorhanden sind.
     
  3. 14. März 2009
    AW: Problem mit Abfrage

    Einträge isnd alle vorhanden, habe ich schon vorher überprüft ...

    ähm, mein gedanke war folgender im foreach bekomme ich wie hier im beispiel eben 4 werte und diese 4 werte gebe ich dann einzeln an die abfrage!

    es gäbe schon eine andere möglichkeit auch noch, aber dardurch brauch ich eine neue tabelle und das bedeutet mehr datenmenge!
     
  4. 14. März 2009
    AW: Problem mit Abfrage

    ich weiß nich was du machen willst bzw was dein problem ist, wo hast du da oben in der while schleife oder im qry bitte deine $idalter drin? Oo oder was willst du machen, wie sehen deine tabellen aus - gibt sicher ne schönere lösung für den kram.
     
  5. 14. März 2009
    AW: Problem mit Abfrage

    also wenn du die datenstruktur schon anderst machst kannst du das ganze mit 1 abfrage erledigen. dafür gibt es ja den join bei sql. und datenmenge ist so gering, wenn du nicht gerade millionen von einträge in der db pflegst.
    oder ich versteh gerade etwas falsch, dann wäre ne bessere erklärung oder mehr quellcode hilfreich
     
  6. 14. März 2009
    AW: Problem mit Abfrage

    also vll hilft ja der komplette datensatz denn dazwischen dir erklärung kann ja verwirren

    PHP:
         if(!empty( $altersgruppe )) {
            
    $arrayalter = explode ( "||" $altersgruppe );
            foreach(
    $arrayalter  as  $idalter ) {

            }
        }

    // Und zwischen diesen beiden datensätzen sorgt die $idalter für die Verbindung, aber unden beim if($idalter == $tk['id']) kommen nicht alle 4 Werte sondern eben nur 26 an und dafür bräuchte ich eine Lösung!
    // Denn wenn ich die Sachen irgendwie ineinander schachtle habe ich jeden selecteintrag 4fach!

            
    $alter = mysql_query ( "SELECT * FROM present_altersgruppe ORDER BY id" );
            while(
    $tk = mysql_fetch_array ( $alter )) {
                    if(
    $idalter  ==  $tk [ 'id' ])     $gruppe .=  '<option selected="selected" value="' . $tk [ 'id' ]. '">&nbsp; - ' . $tk [ 'name' ]. '</option>' ;
                    else 
    $gruppe .=  '<option value="' . $tk [ 'id' ]. '">&nbsp; - ' . $tk [ 'name' ]. '</option>' ;
            }
          
          
          echo 
    '<select name="altersgruppe[]" size="5" multiple="multiple">' . $gruppe . '</select>' ;
     
  7. 14. März 2009
    AW: Problem mit Abfrage

    versteh nicht genau was dein problem ist aber so sieht es viel besser aus ;-)!
    außerdem solltest du mal deine variabeln besser benennen... gruppe, alter, ... das kann man auch alles besser beschreiben sodass jemand, der es später mal ansieht, schneller versteht ;-)...

    zum beispiel indem du einen buchstaben vor jede variable machst, um den typ zu beschreiben.
    $arrayalter => $aSelectedAge
    $alter => $hSQL
    $tk => $aRow
    ...
     
  8. 14. März 2009
    AW: Problem mit Abfrage

    whuhuuu ... hehe es geht

    naja mein problem ist, dass ich das in_array() nicht kannte!

    1000 danke!

    bws sind an alle raus
     
  9. Video Script

    Videos zum Themenbereich

    * gefundene Videos auf YouTube, anhand der Überschrift.