Probleme bei if Abfrage in Perl Script

Diskutiere und helfe bei Probleme bei if Abfrage in Perl Script im Bereich Webmaster Support, Scripts, etc im SysProfile Forum bei einer Lösung; Hallo, ist hier evtl. jemand, der sich ein bisschen mit Perl auskennt und mir helfen könnte? ich habe eine if-Anweisung, die so aussieht: if... Dieses Thema im Forum "Webmaster Support, Scripts, etc" wurde erstellt von Mic, 27. Dezember 2009.

  1. Mic
    Mic Lebende CPU
    Registriert seit:
    13. Dezember 2007
    Beiträge:
    1.349
    Zustimmungen:
    45
    Name:
    Michael
    1. SysProfile:
    48811
    2. SysProfile:
    31071
    105840

    Hallo,

    ist hier evtl. jemand, der sich ein bisschen mit Perl auskennt und mir helfen könnte?

    ich habe eine if-Anweisung, die so aussieht:

    Code:
    if ($Titelselect=="") {
      $Select1 = "titel='$Titelselect'"}
    else { 
      $Select1 = "titel!=''"};
    
      my $sql = qq{select * from filme where $Select1};
      my $sth = $dbh->prepare($sql);
      $sth->execute();
    
    Wie man vll. erkennen kann, soll die Datenbankausgabe nach einem gewissen Wert $Titelselect gefiltert werden. Wenn $Titelselect irgend ein Wert ist, soll die Tabelle nach dem Wert, der in der Spalte "titel" vorkommt, gefiltert werden. Wenn $Titelselect nichts ist also "" ist, soll $Select1 titel!="" sein, damit nichts gefiltert wird.
    Der erste Teil, also dass $Titelselect ein Wert ist funktioniert. Aber wenn Titelselect nichts ist, wird $Select1 gleich titel="" gesetzt und nicht titel!="". Stimmt in der If, Else Syntax etwas nicht, oder wieso funktioniert die If else Anweisung nicht richtig?
     
  2. Racer X
    Racer X Alter Hase
    Registriert seit:
    11. April 2008
    Beiträge:
    2.222
    Zustimmungen:
    78
    1. SysProfile:
    72607
    2. SysProfile:
    14421

    AW: Probleme bei if Abfrage in Perl Script

    Ich verstehe zwar dein Ganzes Programm nicht, auch nicht warum du nicht PHP nimmst.

    Aber in der Zweiten Zeile fehlt ein ;
     
  3. Mic
    Mic Lebende CPU
    Themenstarter
    Registriert seit:
    13. Dezember 2007
    Beiträge:
    1.349
    Zustimmungen:
    45
    Name:
    Michael
    1. SysProfile:
    48811
    2. SysProfile:
    31071
    105840
    AW: Probleme bei if Abfrage in Perl Script

    Also ich benutze Perl, weil ich ein bisschen damit rumprobieren möchte. Das ganze soll nur ne Übung sein.
    Momentan soll das Script eine Tabelle aus einer Datenbank auslesen und diese Tabelle in HTML wieder ausgeben. Unter der Tabelle will ich eine Möglichkeit einbauen diese Tabelle nach gewissen Werten zu Filtern. Unter jede Spalte soll ein Select-Feld kommen, in dem die Werte, die in jeder Spalte stehen aufgelistet sind. Wenn ich einen von ihnen auswähle soll die Tabelle nach dem Wert gefiltert werden. Momentan schicke ich die Auswahl mit einem Submit-Button an dieses Skript.

    Ich habe die Semikolon jetzt so angeordnet wie hier, aber es funktioniert trotzdem nur so, wie bis jetzt auch... :/


    Ich hab an der If-Abfrage mal rumprobiert und komischerweise funktioniert die If-Abfrage so wie es jetzt es, bis auf das, wenn $Titelselect="" ist. Anscheinend wir die If-Anweisung ignoriert und immer das erste Argument ausgeführt?!
    Übrigens meine Perl Version ist die 5.10.0
    Code:
    [Spoiler="Quelltext"]
    use CGI;
    use DBI;
    
    my $cgi = new CGI;
    
    $query=new CGI;
    $Titelselect = $query->param('Titel');
    $Beschreibungselect = $query->param('Beschreibung');
    
        print "Content-type: text/html\n\n";
        print '<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">', "\n";
        print "<html>\n";
        print "<head>\n";
        print "<title>Datenbankabrage - mySQL</title>\n";
        print '<script type="text/javascript">', "\n";
        print "function reloadPage() { \n";
        print "location.reload(true); } \n";
        print 'setTimeout("reloadPage()",100000) ;', "\n";
        print "</script>\n";
        print "</head>\n";
        print "<body>\n";
      my $DB_NAME = "pdotest";
      my $DB_DSN = "DBI:mysql:database=$DB_NAME";
      my $DB_USER = "root";
      my $DB_PASSWD = "Michael";
      my $dbh = DBI->connect($DB_DSN, $DB_USER, $DB_PASSWD) or die "Fehler bei Datenbankverbindung: $!";
        print "<table>\n";
        print "  <tr>\n";
        print "    <td>\n";
        print "      <span style='font-size:2em'><u><b>Filme</b></u></span><br><br>\n";
        print "    </td>\n";
        print "  </tr>\n";
        print "  <tr>\n";
        print "    <td>\n";
        print "      <table>\n";
        print "        <tr>\n";
        print "          <td width='30'>\n";
        print "          </td>\n";
        print "          <td>\n";
        print "            <table>\n";
        print "              <tr>\n";
        print "                <td>\n";
        print "                  <span style='font-size:1.3em'><u><b>Inhalt aus der Datenbank:</b></u></span>\n";
        print "                </td>\n";
        print "              </tr>\n";
        print "              <tr>\n";
        print "                <td>\n";
    
    if ($Titelselect=="") {
      $Select1 = "titel='$Titelselect'";}
    else { 
      $Select1 = "titel!=''";}
    
      my $sql = qq{select * from filme where $Select1};
      my $sth = $dbh->prepare($sql);
      $sth->execute();
        print '                  <br><table style="(font-size:12px)" border="0" rules="none">',"\n";
        print "                    <tr>\n";
        print '                      <th align="center" width="34"></th>', "\n";
        print '                      <th align="center" width="60" bgcolor="#C0C0C0"><span style="color:white">Lfd. N.</span></th>', "\n";
        print '                      <th align="center" width="150" bgcolor="#C0C0C0"><span style="color:white">Titelname</span></th>', "\n";
        print '                      <th align="center" width="60" bgcolor="#C0C0C0"><span style="color:white">Teil</span></th>', "\n";
        print '                      <th align="center" width="200" bgcolor="#C0C0C0"><span style="color:white">Beschreibung</span></th>', "\n";
        print '                      <th align="center" width="132" bgcolor="#C0C0C0"><span style="color:white">Dauer in Min</span></th>', "\n";
        print '                      <th align="center" width="132" bgcolor="#C0C0C0"><span style="color:white">Erscheinungsjahr</span></th>', "\n";
        print "                    </tr>\n";
        while(@ergebnis=$sth->fetchrow_array)
        {
         print "                   <tr>\n";   
         print "                     <td align='center'></td>\n";
         print "                     <td align='center' bgcolor='#C0C0C0'><span style='color:white'>$ergebnis[0]</span></td>\n";
         print "                     <td align='center'>$ergebnis[1]</td>\n";
         print "                     <td align='center'>$ergebnis[2]</td>\n";
         print "                     <td align='left'>$ergebnis[3]</td>\n";
         print "                     <td align='center'>$ergebnis[4]</td>\n";
         print "                     <td align='center'>$ergebnis[5]</td>\n";
         print "                   </tr>\n";
        }
         print "                 </table>\n";
      $sth->finish();
        print "                </td>\n";
        print "              </tr>\n";
        print "              <tr>\n";
        print "                <td>\n";         
        print "                  <form name='Select' action='http://localhost/Perl/connectmysqlOO.pl' method='get'><table>\n";
        print "                    <tr>\n";
        print "                      <td width='100'>\n";
        print "                        <br><input type='submit' value='Aktualisieren'>\n";
        print "                      </td>\n";
        print "                      <td width='132'>\n";
        print '                        <br><select name="Titel" size="1">',"\n";
    my $sql = qq{select titel from filme};
    my $sth = $dbh->prepare($sql);
    $sth->execute();
        while(@ergebnis=$sth->fetchrow_array)
        {
        print "                          <option value='$ergebnis[0]'>$ergebnis[0]</option>","\n";
        }
    $sth->finish();
        print '                          <option value="" selected>--------------------------</option>',"\n";
        print '                        </select>',"\n";
        print "                      </td>\n";
        print "                      <td width='132'>\n";
        print '                        <br><select name="Beschreibung" size="1">',"\n";
    my $sql = qq{select teil from filme};
    my $sth = $dbh->prepare($sql);
    $sth->execute();
        while(@ergebnis=$sth->fetchrow_array)
        {
        print "                          <option value='$ergebnis[0]'>$ergebnis[0]</option>","\n";
        }
    $sth->finish();
        print '                          <option value="" selected>--------------------------</option>',"\n";
        print '                        </select>',"\n";
        print "                      </td>\n";
        print "                      <td>$Select1\n";
        print "                      </td>\n";
        print "                      <td>,$Titelselect,\n";
        print "                      </td>\n";
        print "                    </tr>\n";
        print "                  </table></form>\n";
        print "                </td>\n";  
        print "              </tr>\n";
        print "            </table>\n";
        print "          </td>\n";
        print "        </tr>\n";
        print "      </table>\n";
        print "    </td>\n";
        print "  </tr>\n";
        print "</table>\n";
      $dbh->disconnect();
        print "</body>\n";
        print "</html>\n";
    [/Spoiler]
    Komischerweise funktioniert es nicht, wenn man ein Code-Tag im Spoiler-Tag benutzen will aber umgekehrt schon. Könnte man das vll. umändern?
     
  4. Racer X
    Racer X Alter Hase
    Registriert seit:
    11. April 2008
    Beiträge:
    2.222
    Zustimmungen:
    78
    1. SysProfile:
    72607
    2. SysProfile:
    14421
    AW: Probleme bei if Abfrage in Perl Script

    Also soo würd ich die Semikolons (Bei PHP) setzen.

    Und Lösch mal dein Passwort aus deim Geposteten Code. Kommt sicher nicht so gut sein MySql Passwort zu veröffentlichen

    Aber ich verstehe das ganze immer noch nicht ^^
    Also wenn
    $Titelselect Kein inhalt hat dann soll $Select1 = "titel='$Titelselect'"; sein. Ansonsten soll $Select1 = "titel!='''; Sein.


    if ($Titelselect=="Hier muss doch ein Wert oder eine Variable stehen") {
    $Select1 = "titel='$Titelselect'";
    }

    else {
    $Select1 = "titel!='Hier genauso'';
    }

    my $sql = qq{select * from filme where $Select1};
    my $sth = $dbh->prepare($sql);
    $sth->execute();
     
  5. Mic
    Mic Lebende CPU
    Themenstarter
    Registriert seit:
    13. Dezember 2007
    Beiträge:
    1.349
    Zustimmungen:
    45
    Name:
    Michael
    1. SysProfile:
    48811
    2. SysProfile:
    31071
    105840
    AW: Probleme bei if Abfrage in Perl Script

    Das Passwort ist mir egal, weil der PC an dem ich das Ausprobiere eh nicht am Netz hängt. Ich probiere nur mit Perl herum.

    Das Skript soll einfach nur ne Tabelle sortieren und als HTML ausgeben. Später soll noch dazukommen, dass ich auch Zeilen einfügen, ändern und löschen kann. Das Skript hat noch keinen Sinn. Ist nur rein zu Testzwecken.

    Also Wenn ich nach nichts filtern möchte, wähle ich in dem Select-Feld nichts aus -> der Value "" also nichts wird übertragen. Somit soll $Select1 titel!="" sein.
    Wenn ich nachetwas filtern möchte, wähle ich im Select-Feld etwas aus -> ein Wert wird übertragen. Somit soll $Select1 titel="Wert" sein.

    So hab ich die Semikolon doch oben gesetzt.

    Das Problem mit der IF-Abfrage scheint anscheinend zu sein, dass immer nur das erste Argument ausgeführt wird , egal was für Titelselect raus kommt
     
  6. Racer X
    Racer X Alter Hase
    Registriert seit:
    11. April 2008
    Beiträge:
    2.222
    Zustimmungen:
    78
    1. SysProfile:
    72607
    2. SysProfile:
    14421
    AW: Probleme bei if Abfrage in Perl Script

    Wie soll er denn eine Verbindung zur datenbank aufbauen wen der Computer keine Internetverbindung hat ?

    Eigentlich hab ich keine Perl Kenntnisse. Also von daher denke ich, dass ich nicht mehr weiterhelfen kann.
     
  7. McAtze
    McAtze Alter Hase
    Registriert seit:
    1. Januar 2009
    Beiträge:
    2.042
    Zustimmungen:
    70
    AW: Probleme bei if Abfrage in Perl Script

    bestimmt mit einer lokalen MySQL DB .. ;)
     
  8. Mic
    Mic Lebende CPU
    Themenstarter
    Registriert seit:
    13. Dezember 2007
    Beiträge:
    1.349
    Zustimmungen:
    45
    Name:
    Michael
    1. SysProfile:
    48811
    2. SysProfile:
    31071
    105840

    AW: Probleme bei if Abfrage in Perl Script

    Richtig. Ich benutze dafür Xampp
     
Thema:

Probleme bei if Abfrage in Perl Script

Andere User suchten nach Lösung und weiteren Infos nach:

  1. problem anweisung bei perl

    ,
  2. if abfrage perl

  1. Diese Seite verwendet Cookies. Wenn du dich weiterhin auf dieser Seite aufhältst, akzeptierst du unseren Einsatz von Cookies.
    Information ausblenden