If (mysql_query)

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • If (mysql_query)

    Hallo zusammen

    Ich finde nirgens einen Ansatz für mein Anfängerproblem, vielleicht kann mir hier jemand einen Tipp geben. Wäre schön.

    Folgendes:

    Ich habe eine IF Bedingung in diesem Style:
    PHP-Code:
    If ($test == "wert1" or $test == "wert2" ...usw.){} 
    Jetzt kommen aber die Werte aus einer MySql - abfrage:
    PHP-Code:
    $query_test "SELECT * FROM $tab ";
    $test mysql_query($query_test $conn) or die(mysql_error());
    $row_test mysql_fetch_assoc($test);
    $totalRows_test mysql_num_rows($test);
    do{
    $werte=    $row_test['werte'];} 
    while (
    $row_test mysql_fetch_assoc($test)); 
    Wie muss ich nun vorgehen um die werte aus der Abfrage in die if bedingung zu bringen?

  • #2
    Mach das doch im SQL!

    Und fast 180 Postings, da kannst du dich nicht mehr mit Anfänger raus reden.
    Das riecht schon nach selber denk Verweigerung.
    Wir werden alle sterben

    Kommentar


    • #3
      es funktioniert auch

      if($test == $wert_aus_der_db)

      Man kann durchaus auch zwei Variablem miteinander vergleichen.

      Vielleicht ist aber auch in_array() für dich interessant.

      Kommentar


      • #4
        Ja TobiaZ

        Das geht so nur wenn ich mehrere Bedingungen will scheitere ich

        if($test == $wert_aus_der_db or $test == $wert_aus_der_db2)

        muss es wohl in ein array packen dann oder?

        Kommentar


        • #5
          Oder besser schon im SQL Statement unterbringen.
          Wir werden alle sterben

          Kommentar


          • #6
            die Frage ist halt, was überhaupt erreicht werden soll.

            Bisher kann ich nicht erkennen, welche werte, wie worin gespeichert sind. Auch scheint die Variablenbenennung bisher willkürlich und teilweise ungültig.

            Kommentar


            • #7
              Ich will eine if Bedingung mit den Bedingungen mit Werten die in der DB gespeichert sind. Sprich die Werte sind nicht manuell gesetzt sondern kommen dynamisch von der Datenbank.

              Kommentar


              • #8
                Aber die Werte aus "$test" müssen doch auch manuell irgendwoher kommen.
                Schreibe doch einfach in dein statement rein
                Code:
                where spalte1 = ".$test." or spalte2 = ".$test." ...

                Kommentar


                • #9
                  Man merkt dann doch, wie die hohe Anzahl Postings und der geringe Kenntnisstand zusammen gehen: Absolut nicht in der Lage eine Problembeschreibung, geschweige denn eigene Ansätze zu liefern!

                  1) welche Daten stehen in der DB?
                  2) was soll mit diesen Daten passiern?

                  Den Ist- und Sollzustand zu posten, kann doch nicht so schwer sein!

                  Kommentar


                  • #10
                    also hier die funktionierende Bedingung
                    PHP-Code:
                    if($date != $date_from && ($date < new DateTime("2011-04-24") or $date > new DateTime("2011-05-07")) && ($date < new DateTime("2010-12-20") or $date > new DateTime("2011-01-08"))) 
                    nun will ich die Daten (zbsp.2011-05-07) aus der DB nehmen und nicht manuell eingeben, da ich verschiedene Daten habe und diese nicht immer die selben sind versuche ich die aus der DB zu fischen
                    PHP-Code:
                            $abfrage_kalenderdaten mysql_query ("SELECT * FROM $tab_kalenderdaten");
                            while (
                    $row mysql_fetch_array ($abfrage_kalenderdaten)) 
                            {
                            
                    $event_von $row["datum_event"];
                            
                    $event_bis $row["datum_event_end"];
                            
                            } 
                    also so zu beispiel:
                    PHP-Code:
                    && ($date < new DateTime("$event_von") or $date > new DateTime("$event_bis")) 
                    das geht auch ausserhalb der while Schleife einwandfrei, nur nimmt er natürlich dann nur den letzten ausgelesenen Datensatz.

                    Kommentar


                    • #11
                      Zitat von sepp Beitrag anzeigen
                      das geht auch ausserhalb der while Schleife einwandfrei, nur nimmt er natürlich dann nur den letzten ausgelesenen Datensatz.
                      Na dann pack's in die While-Schleife, genauer in deren Anweisungsblock.
                      I don't believe in rebirth. Actually, I never did in my whole lives.

                      Kommentar


                      • #12
                        Sorry, wie meinst Du das?

                        Ich will ja nicht die koplette IF Bedingung in der Schlaufe haben, die soll nur einmal ausgeführt werden. Es soll nur innerhalb der Klammer bei der IF Bedingung die vergleiche Dynamisch ausgeben.

                        Ich stehe auf dem Schlach, bin vielleicht auch zu doof oder habe Alzheimer....aber ich komme einfach nicht auf die Lösung....HILFE
                        Zuletzt geändert von sepp; 28.04.2011, 02:40.

                        Kommentar


                        • #13
                          Du denkst zu klein....

                          Meines Erachtens nach bist du auf einem falschen Weg. Aber dass kann ich dir nur beweisen, wenn ich das GANZE Problem kenne.
                          Aber den großen Rahmen hältst du geheim.


                          Behauptungen:
                          SELECT * FROM $tab_kalenderdaten
                          Ein Select mit Stern ist immer falsch, und sagt mir auch nichts über die verwendeten Felder.
                          Ein Select ohne Where ist selten sinnvoll, wann braucht man schon ALLE Daten?
                          Und zusätzlich vermisse ich dort ORDER BY und LIMIT.

                          Was von diesen Behauptungen richtig oder falsch ist, entscheidet sich anhand deiner Problemstellung, die ist aber leider geheim.

                          Deine Idee das im PHP if abzuhandeln kommt mir total seltsam vor, ungewöhnlich, Performance verplempernd. Aber auch das kann ich erst konkretisieren, bzw. eine bessere Lösung anbieten, wenn du dein Problem mal richtig schilderst....

                          Tipp:
                          Zeige die Tabellenstruktur und ein paar Testdaten.
                          Sage was du WIRKLICH erreichen willst.
                          Beharre nicht auf deinem Weg, denn er könnte/wird falsch sein.
                          Wir werden alle sterben

                          Kommentar


                          • #14
                            Nein geheim ist nichts.

                            Ich stelle Kalenderdaten eines bestimmten Wochentag in einem bestimmten Zeitraum dar.
                            PHP-Code:
                            $date_from = new DateTime("2010-08-22");
                            $date_to = new DateTime("2011-07-22");

                            for (
                            $date = clone $date_from$date <= $date_to$date->modify('next monday')) 
                            {
                            // hier werden mit der IF Bedingung gewisse Tage ausgeblendet.
                            if($date != $date_from && ($date < new DateTime("2010-12-20") or $date > new DateTime("2011-01-05")))
                                    { 
                                
                            $tag =$date->format('d');
                                
                            $monat =$date->format('M');
                                
                            $woche =$date->format('W');
                                
                            $jahr =$date->format('Y');
                                echo 
                            $tag.'-'$monat.'-'.$jahr.'--'.$woche.$i.'<br />';
                                }


                            Jetzt habe ich aber verschiedene Zeitspannen (Tag) die ich ausblenden will, nicht nur wie im Beispiel vom 20.12.2010 - 05.01.2011.

                            Die Tabelle beinhaltet nur die Daten der Ausblendzeiten und somit hat diese nur 3 Felder
                            ID|datum_event_start|datum_event_end

                            1|20-12-2010|05-01-2011
                            2|22-10-2010|02-11-2010
                            3|19-04-2011|30-04-2011

                            Darum habe ich keine where bedingung oder kein Limit und noch kein Order - weil ich alle Felder und alle Daten darin brauche und diese Tabelle eigens zu diesem Zweck erstellt wurde. Später erstelle ich ein Formular wo ich zusätzliche Daten in diese Tabelle einfügen kann für Tage die auch ausgebelendet werden müssen.
                            Zuletzt geändert von sepp; 28.04.2011, 12:27.

                            Kommentar


                            • #15
                              Geht doch!
                              So wirds deutlicher!

                              Ich würde da ganz stumpf ran gehen...

                              Weg 1:
                              Alle Daten in ein Array knallen
                              Die Daten aus der DB in ein anderes.
                              Array_Filter() darauf los lassen

                              Weg 2:
                              Einen DatumIterator basteln
                              Die Daten aus der DB in ein Array.
                              Den DatumIterator mit einem FilterIterator dekorieren
                              Wir werden alle sterben

                              Kommentar

                              Lädt...
                              X