Probleme in if bedingung...

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

  • Probleme in if bedingung...

    Vor der IF Bedingung haute noch alle hin...

    Weiß jmd rat?

    PHP-Code:
    <?

    include("conn/connect.inc.php");
    //bereits gesehene User raussuchen
    $viewed = mysql_query("SELECT modell_id FROM benutzer_modells WHERE benutzer_id=1");
    while($zeile=mysql_fetch_row($viewed)){
    $arrZeilen[] = $zeile[0];
    }

    $strViewedIDs = implode( ",", $arrZeilen );
    // ID's der bereits gesehenen User
    echo $strViewedIDs."<br><br>";
    // Rand select ohne der bereits gesehenen User
    $view = mysql_query("SELECT id,name FROM modells WHERE id NOT IN (".$strViewedIDs.") ORDER BY RAND() LIMIT 1");

    $erg = mysql_num_rows( $view );

    // Wenn kein Ergebnis, da alle schon gesehen, cross tabelle leeren und von vorn n rand select
    if ( $erg == 0 ) {
       mysql_query("DELETE FROM benutzer_modells WHERE benutzer_id=1");
       // eigene ID damit der User sich nicht selber sieht
       mysql_query("INSERT INTO benutzer_modells (benutzer_id,modell_id) VALUES (1,1)");
       $newview = mysql_query("SELECT id,name FROM modells WHERE id NOT IN (1) ORDER BY RAND() LIMIT 1");
       $newview1 = mysql_fetch_row($newview);
       $newid = $newview1[0];
       $newname = $newview1[1];

       echo "Ergebnis war 0: "$newid." ".$newname;
       // Gesehenen User in cross tabelle speichern, um ihn fürs nächste rand select zu sperren
       mysql_query("INSERT INTO benutzer_modells (benutzer_id,modell_id) VALUES (1,'$newid')");
       }

    else {
          $view1 = mysql_fetch_row($view);
          $id = $view1[0];
          $name = $view1[1];

          echo $id." ".$name;
          // Gesehenen User in cross tabelle speichern, um ihn fürs nächste rand select zu sperren
          mysql_query("INSERT INTO benutzer_modells (benutzer_id,modell_id) VALUES (1,'$id')");
          }

    ?>

  • #2
    Fehlermeldung oder was passiert nicht.
    *winks*
    Gilbert
    ------------------------------------------------
    Hilfe für eine Vielzahl von Problemen!!!
    http://www.1st-rootserver.de/

    Kommentar


    • #3
      Bekomme keine Fehlermeldung nur leere Seite, wird wahrscheinlich an miener php.ini liegen, arbeitete dran...

      helfen Dir die tables weiter?



      CREATE TABLE benutzer_modells (
      benutzer_id tinyint(8) NOT NULL default '0',
      modell_id tinyint(8) NOT NULL default '0',
      KEY benutzer_id (benutzer_id,modell_id)
      ) TYPE=MyISAM;



      CREATE TABLE modells (
      id tinyint(8) NOT NULL auto_increment,
      name varchar(30) NOT NULL default '',
      punkte int(11) NOT NULL default '0',
      votes int(11) NOT NULL default '0',
      PRIMARY KEY (id),
      UNIQUE KEY name (name)
      ) TYPE=MyISAM;

      #
      # Daten für Tabelle `modells`
      #

      INSERT INTO modells VALUES (1, 'Lara', 0, 0);
      INSERT INTO modells VALUES (2, 'Julia', 0, 0);
      INSERT INTO modells VALUES (3, 'Katrin', 0, 0);
      INSERT INTO modells VALUES (4, 'Jana', 0, 0);
      INSERT INTO modells VALUES (5, 'Sabine', 0, 0);
      INSERT INTO modells VALUES (6, 'Jasmin', 0, 0);
      INSERT INTO modells VALUES (7, 'Saskia', 0, 0);

      Kommentar


      • #4
        wie wär's mit etwas:

        mysql_query("SELECT ... ") or die(mysql_error());

        die Funktion wurde nicht zu Spaß eingebaut ... !

        Außerdem ist ein Statement

        SELECT id,name FROM modells WHERE id NOT IN (1) ORDER BY RAND() LIMIT 1

        Quatsch ... weil

        SELECT id,name FROM modells WHERE id != 1 ORDER BY RAND() LIMIT 1

        schneller ist ... !
        carpe noctem

        [color=blue]Bitte keine Fragen per EMail ... im Forum haben alle was davon ... und ich beantworte EMail-Fragen von Foren-Mitgliedern in der Regel eh nicht![/color]
        [color=red]Hinweis: Ich bin weder Mitglied noch Angestellter von ebiz-consult! Alles was ich hier von mir gebe tue ich in eigener Verantwortung![/color]

        Kommentar


        • #5
          Code geändert, trotzdem keine Ausgabe, zumal ich auch nicht glaube, das der fehler in der Mysql statements lieg...

          geänderter Code:

          PHP-Code:
          <?

          include("conn/connect.inc.php");
          //bereits gesehene User raussuchen
          $viewed = mysql_query("SELECT modell_id FROM benutzer_modells WHERE benutzer_id=1")or die(mysql_error());
          while($zeile=mysql_fetch_row($viewed)){
          $arrZeilen[] = $zeile[0];
          }

          $strViewedIDs = implode( ",", $arrZeilen );
          // ID's der bereits gesehenen User
          echo $strViewedIDs."<br><br>";
          // Rand select ohne der bereits gesehenen User
          $view = mysql_query("SELECT id,name FROM modells WHERE id NOT IN (".$strViewedIDs.") ORDER BY RAND() LIMIT 1")or die(mysql_error());

          $erg = mysql_num_rows( $view );

          // Wenn kein Ergebnis, da alle schon gesehen, cross tabelle leeren und von vorn n rand select
          if ( $erg == 0 ) {
             mysql_query("DELETE FROM benutzer_modells WHERE benutzer_id=1")or die(mysql_error());
             // eigene ID damit der User sich nicht selber sieht
             mysql_query("INSERT INTO benutzer_modells (benutzer_id,modell_id) VALUES (1,1)")or die(mysql_error());

             $newview = mysql_query("SELECT id,name FROM modells WHERE id != 1 ORDER BY RAND() LIMIT 1")or die(mysql_error());
             $newview1 = mysql_fetch_row($newview);
             $newid = $newview1[0];
             $newname = $newview1[1];

             echo "Ergebnis war 0: "$newid." ".$newname;
             // Gesehenen User in cross tabelle speichern, um ihn fürs nächste rand select zu sperren
             mysql_query("INSERT INTO benutzer_modells (benutzer_id,modell_id) VALUES (1,'$newid')")or die(mysql_error());
             }

          else {
                $view1 = mysql_fetch_row($view);
                $id = $view1[0];
                $name = $view1[1];

                echo $id." ".$name;
                // Gesehenen User in cross tabelle speichern, um ihn fürs nächste rand select zu sperren
                mysql_query("INSERT INTO benutzer_modells (benutzer_id,modell_id) VALUES (1,'$id')")or die(mysql_error());
                }

          ?>

          Kommentar


          • #6
            schreib mal auf was die if-Schleife eigentlich bringen soll!
            *winks*
            Gilbert
            ------------------------------------------------
            Hilfe für eine Vielzahl von Problemen!!!
            http://www.1st-rootserver.de/

            Kommentar


            • #7
              Code fertig... &gt;&gt; INSIDE

              Könnt ihr den mal checken, mit hinblickt auf performance unter großer Last...?! Funktionieren tut er.

              Vielen Dank

              PHP-Code:
              include("conn/connect.inc.php");
              $user_id=1;

              $lockedviews mysql_query("SELECT locked_id FROM lockedvotes WHERE user_id='$user_id'")or die(mysql_error());
              $sumlockedvotes mysql_num_rows$lockedviews );
              $users mysql_query("SELECT user_id FROM voting")or die(mysql_error());
              $sumusers mysql_num_rows$users );

              if (
              $sumlockedvotes==$sumusers){
                   
              mysql_query("DELETE FROM lockedvotes WHERE user_id='$user_id'")or die(mysql_error());
                   
              mysql_query("INSERT INTO lockedvotes (user_id,locked_id) VALUES ('$user_id','$user_id')")or die(mysql_error());
                   }

              $viewed mysql_query("SELECT locked_id FROM lockedvotes WHERE user_id='$user_id'")or die(mysql_error());
              while(
              $zeile=mysql_fetch_row($viewed)){
              $arrzeile[] = $zeile[0];
              }

              $viewedids implode","$arrzeile );

              echo 
              $viewedids."<br><br>";

              $view mysql_query("SELECT user_id,name FROM voting WHERE user_id NOT IN (".$viewedids.") ORDER BY RAND() LIMIT 1")or die(mysql_error());

              $view1 mysql_fetch_row($view);
              $id $view1[0];
              $name $view1[1];

              echo 
              $id." ".$name;
                    
              mysql_query("INSERT INTO lockedvotes (user_id,locked_id) VALUES ('$user_id','$id')")or die(mysql_error()); 

              Kommentar

              Lädt...
              X