[PHP5] Weiterleitung über if-Anweisung

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

  • [PHP5] Weiterleitung über if-Anweisung

    Hallo Leutz,
    ich habe ein Problem mit der if Anweisung und Weiterleitung der ausgegebenen Daten.
    In der index.php habe ich ein dropdown Menü als array wo die Branchen aufgelistet sind.
    index.php:
    PHP-Code:
    <form method="post" action="output.php">
                        <tr>
                          <td class="auto" width="200" align="center" valign="middle">
                            <b>Automobile</b><br><br><select name="auto">
                  <option value="keine Angabe" selected>bitte ausw&auml;hlen</option>
        <option value="';?
                            <?php
              
              $cat_array
    =get_auto();
              foreach (
    $cat_array as $thiscat) {
                  echo 
    '<option value="';
                  echo 
    $thiscat['katname'];
                  echo 
    '"';
                   
                  if (
    $edit && $thiscat['katname'] == $aamt['katnr'])
                      echo 
    ' selected';
                  echo 
    '>'
                  echo 
    $thiscat['katname'];
                  echo 
    "\n"
              }
    ?></option>
    Für die suche ist auch eine Eingabe von Postleitzahl erforderlich. Diese wird über method=“post“ an die output.php weitergegeben.
    In der output.php wird über eine if-Anweisung entschieden um welche rubrik es sich handelt und die Daten werden aus der Datenbank ausgegeben.
    output.php:
    PHP-Code:
    <?php
     
    include ('sc_fns.php');
     
    session_start();

    $katnr $_GET['katnr'];
    $name get_einkauf_name($katnr);
    $isbn $_GET['isbn'];
    $plz $_POST['plz'];
    $branchedienst $_POST['dienst'];
    $brancheauto $_POST['auto'];
    $urldie 'dienstdet.php?isbn=' . ($row['isbn']);
    $urlaut 'autodet.php?isbn=' . ($row['isbn']);

    if (
    $branchedienst == 'Anwälte' or $branchedienst == 'Bringdienst' or 
    $branchedienst == 'Versicherungen' or $branchedienst == 'Leihfirmen' or 
    $branchedienst == 'Arbeitsvermittlung') {      
     
    $conn db_connect();
      
    $result mysql_query("select name from branchen 
    where branche='
    $branchedienst' and
     plz='
    $plz' order by name");
          if (!
    $result)
              return 
    FALSE;

    $num_results mysql_num_rows($result);

    for (
    $i 0$i $num_results$i++) 
    {
        
    $row mysql_fetch_assoc($result);

    $name stripslashes($row['name']);


    echo 
    '<table border="0" width="700" align="center" valign="top" cellspacing="0" cellpadding="0">
            <tr>
              <td width="700">'
    ;?>
      <a class="sw" href="<?php echo $urldie?>"><?php echo $name?></a><br />
    <?php
    echo'</td></tr></table>';
    }
    }          

    elseif (
    $brancheauto == 'Autohäuser' or $brancheauto == 'Händler' or 
    $brancheauto == 'Abschlepdienst' or $brancheauto == 'Werkstat'
     
    or 
    $brancheauto == 'Zubehör' or $brancheauto == 'Lackierer') {      

     
    $conn db_connect();
      
    $result mysql_query("select name from branchen 
    where branche='
    $brancheauto' and 
    plz='
    $plz' order by name");
          if (!
    $result)
              return 
    FALSE;

    $num_results mysql_num_rows($result);

    for (
    $i 0$i $num_results$i++) 
    {
        
    $row mysql_fetch_assoc($result);

    $name stripslashes($row['name']);


    echo 
    '<table border="0" width="700" align="center" valign="top" cellspacing="0" cellpadding="0">
            <tr>
              <td width="700">'
    ;?>
      <a class="sw" href="<?php echo $urlaut?>"><?php echo $name?></a><br />
    <?php
    echo'</td></tr></table>';
    }

    }                                                                     
    else {
    }
    ?>
    Es funktioniert auch alles soweit. Ich möchte aber dass nach der Überprüfung das ganze nicht im output.php ausgegeben wird sondern würde das gerne aufteilen. Z.B. wenn man die Rubrik Auto ausgewählt hat und die Branche Händler, soll das ganze in auto.php ausgegeben werden. Oder die Rubrik Dienstleistungen in der dienst.php.

    Hat da einer mal ne Idee wie das zu realisieren ist?

    Vielen Dank im voraus.
    Zuletzt geändert von daac; 13.05.2007, 16:35.

  • #2
    - Benutz bitte die PHP-Tags des Forums. So lässt sich das sehr schwer lesen. Am besten du editierst sie noch nachträglich in dein erstes Posting rein.

    - Du solltest lieber noch eine Tabelle haben, in der die Kategorien drinstehen, und dann mit der Kategorie-ID arbeiten. Stell dir den Aufwand vor, wenn du jetzt einen Kategorienamen nachträglich ändern willst.

    - Das mit der output.php ist eine gute Idee. Wieso willst du das jetzt aufteilen und dir so die Arbeit vervielfältigen?
    ich glaube

    Kommentar


    • #3
      Vielen Dank erstmal für die schnelle Antwort.

      das mit der Tabelle ist eine gute Idee werde mich später drum kümmern. bei der output.php ist es so dass aus der Datenbank nur der Name ausgegeben wird. Wenn man auf diesen Namen draufklickt, werden die details in ...det.php ausgegeben (Adresse, Tel., E-Mail usw.).
      Die ...det.php wird nach rubriken benannt (autodet.php, dienstdet.php, einkaufdet.php, sportdet.php usw.)
      Wenn ich jetzt aus der ...det.php wieder zurück möchte, wird mir angezeigt "die webseite ist abgelaufen" und ich muss sie aktualisieren.
      wenn ich aber das ganze in auto.php anstatt in output.php ausgeben lasse dann sind doch die Daten noch vorhanden oder irre ich mich da?
      Es ist mir auch bewust dass es viel Arbeit ist, aber für einfahere lösungen bin ich immer offen.

      Kommentar


      • #4
        Brich bitte deinen Code um.
        Die Regeln | rtfm | register_globals | strings | SQL-Injections | [COLOR=silver][[/COLOR][COLOR=royalblue]–[/COLOR][COLOR=silver]][/COLOR]

        Kommentar


        • #5
          @tontechniker
          was meinst du mit Code umbrechen?

          Kommentar


          • #6
            Code umbrechen heißt, Zeilenumbrüche so setzen, dass man mit 1024er Bildschirm nicht nach rechts scrollen muß.

            Und überleg dir mal genau, was das hier ausgibt:
            PHP-Code:
            <option value="';?
                                    <?php
                      
                      $cat_array
            =get_auto();
                      foreach (
            $cat_array as $thiscat) {
                          echo 
            '<option value="';

            Kommentar


            • #7
              Das hört sich an, als wäre das suboptimal strukturiert, ohne dass ich das ganz verstehe.

              Grundsätzlich kommt dieses "Webseite ist abgelaufen" immer dann, wenn auf der Seite POST-Daten verwendet werden. Da ändert es nichts dran, wenn du die Dateien umbenennst.
              ich glaube

              Kommentar


              • #8
                Und wie kann ich dann das Problem lösen?
                was muss ich tun um diese Fehlermeldung nicht zu bekommen?

                @onemorenerd
                bei mir gibt das alle Branchen aus der Rubrik auto aus. warum?

                Kommentar


                • #9
                  Und diese Webseite validiert?

                  Kommentar


                  • #10
                    Der Script funktioniert, gibt mir in output auch die namen aus der Datenbank aus. Es ist alles ok soweit, bis auf die Tatsache dass wenn ich zurückgehe die Seite wieder aktualisieren muss

                    Kommentar


                    • #11
                      http://validator.w3.org/

                      Kommentar


                      • #12
                        This page is not Valid (no Doctype found)!

                        es wurden mir fehler angezeigt die ich nicht nachvollziehen kann.
                        aber abgesehen davon gibt es eine lösung für meinen script oder muss ich es komplet ändern?

                        Kommentar


                        • #13
                          Wenn es jetzt nur diese abgelaufen-Meldung ist, die dich stört, kannst du doch deine Formulare auf GET umstellen?
                          ich glaube

                          Kommentar

                          Lädt...
                          X