Link in Abfrage

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

  • Link in Abfrage

    PHP-Code:

    He Hallo ich habe folgende Abfrage
    :

    $query "SELECT Veranstalter, Telefonnummer, Informationen_allgemein from daten";

      
    // Wenn Bedingungen vorhanden, dranhängen
      // ansonsten werden alle Einträge gelistet
      
    if (strlen($where))
        
    $query .= " WHERE " $where;

      
    // Query ausführen
      
    $result mysql_query($query) or die("Fehler in query. " mysql_error());

      
    // Haben wir Treffer?
      
    if (mysql_num_rows($result))
      {
          
    // Wir haben Treffer, also abarbeiten
          
    while ($row mysql_fetch_array($result))
          {
            echo 
    " <tr bgcolor=\"$color\">\n";
            echo 
    "   <td>$row[Veranstalter]</td>\n";
            echo 
    "   <td>$row[Telefonnummer]</td>\n";
            echo 
    "   <td>$row[Info_allgemein]</td>\n";
            echo 
    "   <td><a href=\"suchen.htm\">weitere Info's</a></td>\n";
            echo 
    " </tr>\n"
    Möchte jetzt gerne dort wo
    PHP-Code:
    echo "   <td><a href=\"suchen.htm\">weitere Info's</a></td>\n"
    steht, nur alle restlichen Informationen zu diesem einen Datensatz angezeigt werden und nicht bei jeder Zeile alle Informationen.

    Sprich in meiner Datenbank stehen noch informationen wie datum, uhrzeit, telefonnummer etc. diese sollen erst dargestellt werden, wenn ich auf weitere Info's geklickt habe und dann auch nur die für den speziellen datensatz. Hoffe mein Problem war verständlich.
    Ich könnte mir vorstellen, in der Select abfrage einen where bedingung über die id mit einbauen oder? der wert id ist bei mir primary-key. Habe aber keine Ahnung wie, oder kann man das Problem anders lösen.

  • #2
    verlinke mit der datei und gibt ihr die id des datensatzes mit.

    in der datei machst du die query komplett und WHERE id = eben die übergebene.

    fertig.
    INFO: Erst suchen, dann posten![color=red] | [/color]MANUAL(s): PHP | MySQL | HTML/JS/CSS[color=red] | [/color]NICE: GNOME Do | TESTS: Gästebuch[color=red] | [/color]IM: Jabber.org |


    Kommentar


    • #3
      Frage

      Wäre nett, wenn Du mir mal dazu ein wenig Quellcode posten könntest?

      danke im voraus

      Kommentar


      • #4
        Code:
        		
        $query = "SELECT Veranstalter, Telefonnummer, Informationen_allgemein from daten";
        (......)
        echo "   <td><a href=\"infos.php?id=$row[id]\">weitere Info's</a></td>\n";
        (.....)
        Dann haust Du in die infos.php einfach ein query in der art
        Code:
        SELECT Veranstalter, Telefonnummer, Informationen_allgemein from daten where id=$id
        und gibst es wieder aus. Alles verstanden??? :-)
        Jochen Heizmann, Intermediaware
        www.intermediaware.de
        --------------------------------------
        netArtist - Online HTML Editor
        Websiten online pflegen - Einbindung & Installation per Mausklick!
        www.intermediaware.de/netArtist

        Kommentar


        • #5
          Fehlermeldung

          Danke für die Antwort,

          habe es eingearbeitet, bekomme aber folgende Fehlermeldung:

          Fehler in query. You have an error in your SQL syntax. Check the manual that corresponds to your MySQL server version for the right syntax to use near '' at line 1

          der query schaut so aus:
          PHP-Code:
          $query "SELECT Datum_Beginn, Datum_Ende, Uhrzeit_Beginn, Uhrzeit_Ende, eMail from daten where id=$id"

          Kommentar


          • #6
            Gibt es alle Felder?? Am besten Mal stark vereinfachen zum testen.

            Wird die richtige ID übergeben. Am besten mal mit nem simplen
            Code:
            echo "ID: $ID";
            testen
            Jochen Heizmann, Intermediaware
            www.intermediaware.de
            --------------------------------------
            netArtist - Online HTML Editor
            Websiten online pflegen - Einbindung & Installation per Mausklick!
            www.intermediaware.de/netArtist

            Kommentar


            • #7
              dieses

              Meine infos.php schaut so aus:

              <?php
              echo "ID: $ID";
              ?>
              bei der Ausgabe steht nur ID: und dann wieder die Fehlermeldung
              Fehler in query. You have an error in your SQL syntax. Check the manual that corresponds to your MySQL server version for the right syntax to use near '' at line 1

              das gerüst der tabelle schreibt er hin, also sprich:
              Datum_Beginn Datum_Ende Uhrzeit_Beginn Uhrzeit_Ende eMail

              meine infos.php schaut jetzt so aus
              PHP-Code:
              <!doctype html public "-//W3C//DTD HTML 4.0 //EN">
              <html>
              <body>
              <table border="0" align=left>
               <tr bgcolor="#C0C0C0">
                 <td><b>Datum_Beginn</b></td>
                 <td><b>Datum_Ende</b></td>
                 <td><b>Uhrzeit_Beginn</b></td>
                 <td><b>Uhrzeit_Ende</b></td>
                 <td><b>eMail</b></td>
               </tr>

              <?
                // Hintergrundfarbe für Zeile
                $color = "#FFFF00";

                // Query aufbauen
                $query = "SELECT Datum_Beginn, Datum_Ende, Uhrzeit_Beginn, Uhrzeit_Ende, eMail from daten where id=$id";

                // Wenn Bedingungen vorhanden, dranhängen
                // ansonsten werden alle Einträge gelistet
                if (strlen($where))
                  $query .= " WHERE " . $where;

                // Query ausführen
                $result = mysql_query($query) or die("Fehler in query. " . mysql_error());

                // Haben wir Treffer?
                if (mysql_num_rows($result))
                {
                    // Wir haben Treffer, also abarbeiten
                    while ($row = mysql_fetch_array($result))
                    {
                      echo " <tr bgcolor=\"$color\">\n";
                      echo "   <td>$row[Datum_Beginn]</td>\n";
                      echo "   <td>$row[Datum_Ende]</td>\n";
                      echo "   <td>$row[Uhrzeit_Beginn]</td>\n";
                      echo "   <td>$row[Uhrzeit_Ende]</td>\n";
                      echo "   <td>$row[eMail]</td>\n";
                      echo " </tr>\n";

                      // Farbe für die nächste Zeile umsetzen
                      $color = ($color == "#FFFFF0") ? "#FFFFFF" : "#FFFFF0";

                    }
                }
                else
                {
                  // keine Treffer gefunden
                  echo " <tr bgcolor=\"$color\">\n";
                  echo "   <td colspan=\"5\"><b>Keine passenden Daten gefunden!</b></td>\n";
                  echo " </tr>\n";
                }

                // Datenbakverbindung schließen
                mysql_close($sql);
              ?>
              </table>
              </body>
              </html>
              Name in der Datenbank mit denen in der select abfrage stimmen auch überein.

              Kommentar


              • #8
                was ist die id? int? ansonsten mal n '$id' machen

                und mal den query echo()en.

                Kommentar


                • #9
                  habs grad noch mal überflogen.

                  @Jochen: Bitte keine Schei** beibringen!

                  mit $id wird in dem Fall nicht gearbeitet. Natürlich mit dem GET Array!

                  Kommentar


                  • #10
                    Also wenn ich mir den Source da drüber anschaue, brauchst Du mir hier nicht mit sauberer Programmierung zu kommen :-)

                    Zumal ich ja erstens geschrieben hab 'probier das mal kurz aus obs funzt und zum zweiten würde ich persönlich wegen in so einem Fall trotzdem nicht mit $_GET arbeiten. Sondern eher noch ne is_set Abfrage reinhauen.

                    Vielleicht hab ich jetzt aber auch was in den falschen Hals bekommen. Poste doch mal den Source wie Du das lösen würdest. Interessiert mich jetzt schon (brauchst ja nicht zu checken, nur daß man so grob weiß wie du's machen würdest)

                    Keep cool...

                    PS: Ach so, ich geh mal davon aus daß das id-Feld int ist, wenn es als primary key wie oben geschrieben definiert ist (vermutlich auch auto increment). Ist doch in der Regel immer so.
                    Jochen Heizmann, Intermediaware
                    www.intermediaware.de
                    --------------------------------------
                    netArtist - Online HTML Editor
                    Websiten online pflegen - Einbindung & Installation per Mausklick!
                    www.intermediaware.de/netArtist

                    Kommentar


                    • #11
                      Re: dieses

                      Original geschrieben von sunburner

                      // Query aufbauen
                      $query = "SELECT Datum_Beginn, Datum_Ende, Uhrzeit_Beginn, Uhrzeit_Ende, eMail from daten where id=$id";

                      // Wenn Bedingungen vorhanden, dranhängen
                      // ansonsten werden alle Einträge gelistet
                      if (strlen($where))
                      $query .= " WHERE " . $where;
                      Schau mal. Das kann ja nicht funktionieren. Dann bekommst Du ja zweimal WHERE in den Query-String z.b.

                      SELECT Datum_Beginn, Datum_Ende, Uhrzeit_Beginn, Uhrzeit_Ende, eMail from daten where id=$id WHERE $where
                      Jochen Heizmann, Intermediaware
                      www.intermediaware.de
                      --------------------------------------
                      netArtist - Online HTML Editor
                      Websiten online pflegen - Einbindung & Installation per Mausklick!
                      www.intermediaware.de/netArtist

                      Kommentar


                      • #12
                        @ Jochen: war nicht böse gemeint. Aber kam halt so rüber. schließlich ist es kein wunder, wenn es mit $id nicht funktioniert. Ne isset abfrage muss auf jeden fall rein, dass ist keine frage. aber trotzdem kommst du bei globals off nicht um das Get-Array rum.

                        Hatte ja auch schon mal gemeldet, dass da mal ne Ausgabe des Querys erfolgen soll. verstehe nicht, wieso man das nicht direkt macht, sondern immer am "variablenstring" verucht den fehler zu finden.

                        Kommentar


                        • #13
                          Frage, was jetzt

                          He Sorry Jungs,

                          könnte mir mal bitte einer genau sagen, was bei mir noch fehlt oder geändert werden müsste.

                          Kommentar


                          • #14
                            Frage

                            Habe inzwischen dieses:
                            PHP-Code:
                            <?php

                              
                            // Array für die Where-Bedingungen initialisieren
                              
                            $whereValues = array();

                              
                            // Sind Checkboxen gesetzt?
                              
                            if (isset($HTTP_POST_VARS["checkboxes"]))
                              {
                                
                            // Checkboxen geklickt
                                
                            $checkboxes $HTTP_POST_VARS["checkboxes"];

                                
                            // Zu den Bedingungen hinzufügen
                                
                            foreach ($checkboxes as $value)
                                  
                            $whereValues[] = "$value=1";
                              }
                               
                            // Wenn Bedingungen vorhanden, zu einem String zusammensetzen
                               // Hier wird AND benutzt
                               
                            if (count($whereValues))
                                 
                            $where implode(" AND "$whereValues);
                               else
                                 
                            $where "";

                              
                            // Verbindung zur Datenbank-Server herstellen
                              // Hier anpassen!!!!!!!
                              
                            $sql mysql_connect("localhost","root","");

                              
                            // Datenbank auswählen
                              // Hier anpassen!!!!!!!
                              
                            mysql_select_db("veranstaltungen");
                            ?>
                            <!doctype html public "-//W3C//DTD HTML 4.0 //EN">
                            <html>
                            <body background="Bilder/hinten_0.jpg">
                            <table border="0" align=left>
                             <tr bgcolor="#C0C0C0">
                               <td><b>Veranstalter</b></td>
                               <td><b>Telefonnummer</b></td>
                               <td><b>Informationen allgemein</b></td>
                             </tr>

                            <?
                              // Hintergrundfarbe für Zeile
                              $color = "#FFFFFF";

                              // Query aufbauen
                              $query = "SELECT Veranstalter, Telefonnummer, Informationen_allgemein from daten";

                              // Wenn Bedingungen vorhanden, dranhängen
                              // ansonsten werden alle Einträge gelistet
                              if (strlen($where))
                                $query .= " WHERE " . $where;

                              // Query ausführen
                              $result = mysql_query($query) or die("Fehler in query. " . mysql_error());

                              // Haben wir Treffer?
                              if (mysql_num_rows($result))
                              {
                                  // Wir haben Treffer, also abarbeiten
                                  while ($row = mysql_fetch_array($result))
                                  {
                                    echo " <tr bgcolor=\"$color\">\n";
                                    echo "   <td>$row[Veranstalter]</td>\n";
                                    echo "   <td>$row[Telefonnummer]</td>\n";
                                    echo "   <td>$row[Info_allgemein]</td>\n";
                                    echo "   <td><a href=\"infos.php?id=$row[id]\">weitere Info's</a></td>\n";
                                    echo " </tr>\n";

                                    // Farbe für die nächste Zeile umsetzen
                                    $color = ($color == "#FFFFF0") ? "#FFFFFF" : "#FFFFF0";

                                  }
                              }
                              else
                              {
                                // keine Treffer gefunden
                                echo " <tr bgcolor=\"$color\">\n";
                                echo "   <td colspan=\"5\"><b>Keine passenden Daten gefunden!</b></td>\n";
                                echo " </tr>\n";
                              }

                              // Datenbakverbindung schließen
                              mysql_close($sql);
                            ?>
                            </table>
                            </body>
                            </html>
                            und die infos.php schaut so aus

                            PHP-Code:
                            <?php

                            // ID per URL übergeben?
                            if (isset($HTTP_GET_VARS["id"]))
                               
                            $id $HTTP_GET_VARS["id"];
                            else
                            {
                               
                            // ID nich übergeben, ist die Frage, was jetzt passieren soll?
                               // Ohne ID würden alle Infos angezeigt, und das ist wohl nicht
                               // Sinn der Sache. Ich würde zu einer Fehlerseite weiterleiten.
                               
                            echo "<a href=\"login.php\">";
                            }

                               
                            // Verbindung zur Datenbank-Server herstellen
                              // Hier anpassen!!!!!!!
                              
                            $sql mysql_connect("localhost","root","");

                              
                            // Datenbank auswählen
                              // Hier anpassen!!!!!!!
                              
                            mysql_select_db("veranstaltungen");
                            ?>
                            <!doctype html public "-//W3C//DTD HTML 4.0 //EN">
                            <html>
                            <body>
                            <table border="0" align=left>
                             <tr bgcolor="#C0C0C0">
                               <td><b>Datum_Beginn</b></td>
                               <td><b>Datum_Ende</b></td>
                               <td><b>Uhrzeit_Beginn</b></td>
                               <td><b>Uhrzeit_Ende</b></td>
                               <td><b>eMail</b></td>
                             </tr>

                            <?
                              // Hintergrundfarbe für Zeile
                              $color = "#FFFF00";

                              // Query aufbauen
                              $query = "SELECT Datum_Beginn, Datum_Ende, Uhrzeit_Beginn, Uhrzeit_Ende, eMail from daten where id=$id";


                                // Query ausführen
                              $result = mysql_query($query) or die("Fehler in query. " . mysql_error());

                              // Haben wir Treffer?
                              if (mysql_num_rows($result))
                              {
                                  // Wir haben Treffer, also abarbeiten
                                  while ($row = mysql_fetch_array($result))
                                  {
                                    echo " <tr bgcolor=\"$color\">\n";
                                    echo "   <td>$row[Datum_Beginn]</td>\n";
                                    echo "   <td>$row[Datum_Ende]</td>\n";
                                    echo "   <td>$row[Uhrzeit_Beginn]</td>\n";
                                    echo "   <td>$row[Uhrzeit_Ende]</td>\n";
                                    echo "   <td>$row[eMail]</td>\n";
                                    echo " </tr>\n";

                                    // Farbe für die nächste Zeile umsetzen
                                    $color = ($color == "#FFFFF0") ? "#FFFFFF" : "#FFFFF0";

                                  }
                              }
                              else
                              {
                                // keine Treffer gefunden
                                echo " <tr bgcolor=\"$color\">\n";
                                echo "   <td colspan=\"5\"><b>Keine passenden Daten gefunden!</b></td>\n";
                                echo " </tr>\n";
                              }

                              // Datenbakverbindung schließen
                              mysql_close($sql);
                            ?>
                            </table>
                            </body>
                            </html>
                            aber immer noch fehler, denn die id wird nicht übergeben. wenn ich vor

                            PHP-Code:
                                // Query ausführen
                              
                            $result mysql_query($query) or die("Fehler in query. " mysql_error());

                            dieses schreibe

                             
                            echo $query
                            erscheint folgender fehler

                            SELECT Datum_Beginn, Datum_Ende, Uhrzeit_Beginn, Uhrzeit_Ende, eMail from daten where id=Fehler in query. You have an error in your SQL syntax. Check the manual that corresponds to your MySQL server version for the right syntax to use near '' at line 1

                            Kommentar


                            • #15
                              id scheint unbekannt zu sein. daher gibt es sie auch nciht in der query.

                              und das meckert sql an.
                              INFO: Erst suchen, dann posten![color=red] | [/color]MANUAL(s): PHP | MySQL | HTML/JS/CSS[color=red] | [/color]NICE: GNOME Do | TESTS: Gästebuch[color=red] | [/color]IM: Jabber.org |


                              Kommentar

                              Lädt...
                              X