Ankündigung

Einklappen
Keine Ankündigung bisher.

[Erledigt] mehrere Tabellen über PHP script aus Datenbank auslesen alphabetisch...

Einklappen

Neue Werbung 2019

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

  • [Erledigt] mehrere Tabellen über PHP script aus Datenbank auslesen alphabetisch...

    Halloooooo,
    ich stöbere jetzt seit geraumer Zeit im Internet und suche nach einer Lösung meines Problems. Ich bin neu hier und würd mich freuen, wenn hier mal jemand über mein Script schauen könnte, vielleicht fällt dem ein oder anderen ja spontan der Fehler auf.

    Es geht um eine stadt / land / fluss auswahl und zwar wählt der user zu beginn über ein dropdown menü einen buchstaben aus, dieser wählt denn aus den tabellen stadt, land, fluss, gebirge, hauptstadt die alle unter der datenbank slf zu finden sind die passenden namen mit z.b "A" aus, das heisst alle ergebnisse mit a sollen ausgegeben werden.....das problem liegt in der abfrage, da taucht ständig der fehler "..... on line30" auf jedes mal steht da eine andere zeile.
    Es wäre super wenn einer von euch eine Idee hat woran das liegen könnte!?
    Angehängte Dateien

  • #2
    Und wie soll man "mal über dein Script" schauen, wenn man überhaupt nix erkennen kann? o.O
    #m { f : g }

    Kommentar


    • #3
      Zitat von Janela Beitrag anzeigen
      Es geht um eine stadt / land / fluss auswahl und zwar wählt der user zu beginn über ein dropdown menü einen buchstaben aus, dieser wählt denn aus den tabellen stadt, land, fluss, gebirge, hauptstadt die alle unter der datenbank slf zu finden sind [...]
      Warum sind das überhaupt verschiedene Tabellen?

      Wenn du da nicht noch großartig weitere, stark unterschiedlich strukturierte Daten dazu ablegen möchtest - dann solltest du eine Tabelle nehmen, und in dieser ein zusätzliches Kennzeichen, ob der Begriff jetzt eine Stadt, ein Land etc. ist.

      das problem liegt in der abfrage, da taucht ständig der fehler "..... on line30" auf jedes mal steht da eine andere zeile.
      Es wäre super wenn einer von euch eine Idee hat woran das liegen könnte!?
      Nein, weil auf deinen Screeshots so gut wie nichts zu erkennen ist. (Mag an der Verkleinerung durch das Forum liegen.)

      Bitte poste den Code in Textform (natürlich nur relevante Teile), und dazu die Fehlermeldungen im Wortlaut.

      Und wenn nur PHP den Fehler meldet, dass du versuchst Daten aus einer ungültigen Resource auszulesen - dann informiere dich bitte erst mal, wie man bei MySQL-Fehlern debugging betreibt.
      [SIZE="1"]RGB is totally confusing - I mean, at least #C0FFEE should be brown, right?[/SIZE]

      Kommentar


      • #4
        also die tabellen sehen so aus stadt enthält spalte id(PRIMARY) und stadtname, tabelle land enthält spalte id(PRIMARY) und landname etc.


        PHP-Code:
        <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
        <html xmlns="http://www.w3.org/1999/xhtml">
        <head>
        <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
        <title>Ergebnisse</title>
        </head>
        <body>
        <?php
        $mysqlhost
        ="localhost";
        $mysqluser=""
        $mysqlpwd=""
        $mysqldb="slf";
        $db=mysql_connect($mysqlhost$mysqluser$mysqlpwd) or die("Verbindungsversuch fehlgeschlagen");

        echo 
        'Datenbankverbindung';
        $buchstabe $_POST["buchstabe"];
        echo 
        'Sie haben $buchstabe eingegeben';

        $queryStadt="SELECT stadtname FROM stadt WHERE stadtname LIKE'".$_POST["buchstabe"]."%'";
        $resultStadt=mysql_query($queryStadt) or die("Anfrage nicht erfolgreich");
        while(
        $row=mysql_fetch_assoc($resultStadt)){
            
        $stadtname[] = array("stadtname"=>$row["stadtname"]);
        }
        $queryLand="SELECT Landname FROM Land WHERE Landname LIKE'".$_POST["buchstabe"]."%'";
        $resultLand=mysql_query($queryLand) or die("Anfrage nicht erfolgreich");

        while(
        $row=mysql_fetch_assoc($resultLand)){
            
        $landname[] = array("landname"=>$row["Land"]);
        }
        $queryFluss="SELECT Flussname FROM Fluss WHERE Flussname LIKE'".$_POST["buchstabe"]."%'";
        $resultFluss=mysql_query($queryFluss) or die("Anfrage nicht erfolgreich");

        while(
        $row=mysql_fetch_assoc($resultFluss)){
            
        $Flussname[] = array("Flussname"=>$row["Fluss"]);
        }
        $queryGebirge="SELECT Gebirgsname FROM Gebirge WHERE Gebirgsname LIKE'".$_POST["buchstabe"]."%'";
        $resultGebirge=mysql_query($queryGebirge) or die("Anfrage nicht erfolgreich");

        while(
        $row=mysql_fetch_assoc($resultGebirge)){
            
        $Gebirgsname[] = array("Gebirgsname"=>$row["Gebirge"]);
        }
        $queryHauptstadt="SELECT Hauptstadtname FROM Hauptstadt WHERE Hauptstadtname LIKE'".$_POST["buchstabe"]."%'";
        $resultHauptstadt=mysql_query($queryHauptstadt) or die("Anfrage nicht erfolgreich");

        while(
        $row=mysql_fetch_assoc($resultHauptstadt)){
            
        $Hauptstadtname[] = array("Hauptstadtname"=>$row["Hauptstadt"]);
        }
        ?>
        <table>
            <tr>
                <td>stadtnamen mit <? =$_POST["buchstabe"]?></td>
                <td>
            <?
                foreach ($stadtnamen as $key => $namen){
                
                    echo $namen["stadtname"]."<br />";
            
                }?> 
                </td>
            </tr>
            <tr>
                <td>Länder mit <? =$_POST["buchstabe"]?></td>
                <td>
                <?
                foreach ($stadtnamen as $key => $namen){
                
                    echo $namen["landname"]."<br />";
            
                }?> 
                </td>
            </tr>
                <tr>
                <td>Flüsse mit <? =$_POST["buchstabe"]?></td>
                <td>
                    <?
                foreach ($Flussnamen as $key => $namen){
                
                    echo $namen["Flussname"]."<br />";
            
                }?> 
                </td>
            </tr>
                    <tr>
                <td>Hauptstädte mit <? =$_POST["buchstabe"]?></td>
                <td>
                <?
                foreach ($Hauptstadtname as $key => $namen){
                
                    echo $namen["Hauptstadtname"]."<br />";
            
                }?> 
                </td>
            </tr>        
        </table>
        <?php
        mysql_close
        ($db)
        ?>
        </body>
        </html>

        und das ist der dazugehörige html teil:

        Code:
        <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
        <html xmlns="http://www.w3.org/1999/xhtml">
        <head>
        	<title>STADT - LAND - FLUSS</title>
        	<link  rel="stylesheet" href="css/style.css" type="text/css" />
        </head>
        <body>
         <form method="post" action="ergebnisse.php">
          <fieldset>
            <legend id="h1"><b>Finden Sie mit der Auswahl der Buchstaben Stadt, Land, Fluss, Gebirge und eine Hauptstadt</b></legend>
          <br>
        <select  type="Text" name = "buchstabe">
                  <option value="A" selected="selected">A</option>
                  <option value="B">B</option>
                  <option value="C">C</option>
                  <option value="D">D</option>
                  <option value="E">E</option>
                  <option value="F">F</option>
                  <option value="G">G</option>
        		  <option value="H">H</option>
        		  <option value="I">I</option>
                  <option value="J">J</option>
        		  <option value="K">K</option>
        		  <option value="L">L</option>
        		  <option value="M">M</option>
        		  <option value="N">N</option>
        		  <option value="O">O</option>
        		  <option value="P">P</option>
        		  <option value="Q">Q</option>
        		  <option value="R">R</option>
        		  <option value="S">S</option>
        		  <option value="T">T</option>
        		  <option value="U">U</option>
        		  <option value="V">V</option>
        		  <option value="W">W</option>
        		  <option value="X">X</option>
        		  <option value="Y">Y</option>
        		  <option value="Z">Z</option>
         </select>
        		    <input type="submit" name="formaction" value="SUCHEN" /><br>
           
         </fieldset>
           
        </form>
        </body>
        </html>

        Kommentar


        • #5
          Hmmm, du meinst ich sollte eine Tabelle "Daten" mit den spaltennamen stadtname, landname, flussname etc machen. hate diese tabelle dann überhaupt einen PRIMARY key? der beschreibt dann ja keine Eindeutigkeit!?

          Kommentar


          • #6
            Zitat von Janela Beitrag anzeigen
            Hmmm, du meinst ich sollte eine Tabelle "Daten" mit den spaltennamen stadtname, landname, flussname etc machen.
            Nein.

            ID | Name | Typ

            Typ ist dabei ein Kennzeichen, ob es sich bei Name um eine Stadt, einen Fluss, ... handelt.
            [SIZE="1"]RGB is totally confusing - I mean, at least #C0FFEE should be brown, right?[/SIZE]

            Kommentar


            • #7
              ok, danke - aber an sich müsste das script doch auch so funktionieren....

              Kommentar


              • #8
                Das macht sicher nicht das, was es soll.
                PHP-Code:
                echo 'Sie haben $buchstabe eingegeben'
                Poste mal die genaue Fehlermeldung. Wo in deinem Code ist die Zeile 30?
                [PHP]if ($var != 0) {
                $var = 0;
                }[/PHP]

                Kommentar


                • #9
                  PHP-Code:
                  echo $namen["stadtname"]."<br />"
                  Du hast deine Stadtnamen im Array $stadtname[]. Wenn du die auflisten möchtest, dann musst du das mit einer foreach()-Konstruktion machen. Ähnlich ist es bei allen anderen Namen aus deinen Tabellen.
                  [PHP]if ($var != 0) {
                  $var = 0;
                  }[/PHP]

                  Kommentar


                  • #10
                    Danke, hat sich gelöst

                    Kommentar


                    • #11
                      Also das in der Fehlermeldung immer eine andere Zeile steht, würde ich doch bezweifeln wollen. Das da was mit deinen Arrays nicht passt hat Wolle ja schon geschrieben.

                      Immer die komplette Fehlermeldung im exakten Wortlaut inkl. der Zeile, die den Fehler verursacht angeben. Dann kann man dir schneller und besser helfen.

                      Kommentar


                      • #12
                        $queryStadt="SELECT stadtname FROM stadt WHERE stadtname LIKE'".$_POST["buchstabe"]."%'";
                        $resultStadt=mysql_query($queryStadt) or die("Anfrage nicht erfolgreich");
                        while($row=mysql_fetch_assoc($resultStadt)){
                        $stadtname[] = array("stadtname"=>$row["Stadtname"]);
                        }

                        bei dieser Abfrage erhalte ich immer "Anfrage nicht erfolgreich" Kann mir jemand sagen warum?

                        Kommentar


                        • #13
                          So sieht meine Ausgabe weiter unten im script aus:
                          <!-- Ausgabe der Stadtnamen -->
                          <td>Stadtnamen mit <?=$_POST["buchstabe"]?></td>
                          <?
                          foreach ($stadtnamen as $key => $value) {
                          echo "<td>".$value."</td>";
                          }
                          ?>

                          Kommentar


                          • #14
                            Setz deinen PHP-Code immer in PHP-Tags, dann kann man den besser lesen.
                            PHP-Code:
                            $queryStadt="SELECT stadtname FROM stadt WHERE stadtname LIKE'".$_POST["buchstabe"]."%'";

                            // Zum Test die Query ausgeben
                            echo $queryStadt;

                            $resultStadt=mysql_query($queryStadt) or die("Anfrage nicht erfolgreich");
                            while(
                            $row=mysql_fetch_assoc($resultStadt)){
                            $stadtname[] = array("stadtname"=>$row["Stadtname"]); 
                            [PHP]if ($var != 0) {
                            $var = 0;
                            }[/PHP]

                            Kommentar


                            • #15
                              Zitat von Janela Beitrag anzeigen
                              $queryStadt="SELECT stadtname FROM stadt WHERE stadtname LIKE'".$_POST["buchstabe"]."%'";
                              $resultStadt=mysql_query($queryStadt) or die("Anfrage nicht erfolgreich");
                              while($row=mysql_fetch_assoc($resultStadt)){
                              $stadtname[] = array("stadtname"=>$row["Stadtname"]);
                              }

                              bei dieser Abfrage erhalte ich immer "Anfrage nicht erfolgreich" Kann mir jemand sagen warum?
                              Deine Datenbank könnte das. Du müsstest nur den Fehlergrund abfragen... [MAN]mysql_error[/MAN]

                              Kommentar

                              Lädt...
                              X