Ergebnis 1 bis 10 von 10

Thema: Aufbau einer Mysql-Detailsseite

  1. #1
    TP-Member Avatar von Puntotoddy
    Registriert seit
    Nov 2006
    Ort
    Rostock
    Beiträge
    51

    Aufbau einer Mysql-Detailsseite

    Moin Moin,

    kurz zu den Details...

    Ich habe eine DB mit 3 Spalten,
    ID | Spalte1 | Spalte2, und auch zum testen schon zwei Einträge drin. (Vergeben sind ID 1 und ID 2)

    Ich lasse mir auf der 1. Seite alle Einträge anzeigen
    id1 | id1_eintrag 1 | id1_eintrag 2
    id2 | id2_eintrag 1 | id2_eintrag 2

    Hinter jeder id folgt dann eine Verlinkung auf eine Detailseite, was in etwa so aussieht...

    PHP-Code:
    <a href="details.php?ID=<? echo $ID_AUS_DER_DATENBANK;?>">Bezeichnung</a>
    Das funktioniert auch soweit super, aber nun komme ich auf der Folgeseite(Detailseite) nicht mehr weiter.?!

    Ich möchte auf der 2. Seite den kompletten Eintrag von z.B. id1 anzeigen lassen je nach dem was man auf der Vorseite anklickt.

    Bsp: http://meineseite.de/details.php?id=1
    oder: http://meineseite.de/details.php?id=2


    Hier der Code:
    (Ist der Code von der ersten Seite nur etwas angepasst und trotzdem gehts iwie nich)
    PHP-Code:
    <?php
         $server 
    'localhost';
         
    $benutzer 'root';
         
    $passwort '';
         
    $datenbank 'meine_db';
         
         
    $verbindung = @mysqli_connect($server$benutzer$passwort);
         
         if (
    $verbindung){
            
    mysqli_select_db($verbindung$datenbank);
            
            if(
    mysqli_error($verbindung)){
                echo 
    'Fehler: ' mysqli_error($verbindung);
            }else{
                
                
    $sql "SELECT * FROM meinetabelle where id=$_POST ['id']";
                
    $abfrage mysqli_query($verbindung$sql);
                
                while(
    $bestand mysqli_fetch_assoc($abfrage)){
                    echo 
    "<table width='300' border='1' cellspacing='0' cellpadding='0'>";
                    echo 
    "<tr>";
                    echo 
    "<td align='center' width='20'>{$bestand['id']}</td>";
                    echo 
    "<td align='center' width='140'>{$bestand['spalte1']}</td>";
                    echo 
    "<td align='center' width='140'>{$bestand['spalte2']}</td>";
                }
                echo 
    '</tr></table>';
                
    mysqli_free_result($abfrage);
            }
         }else{
            echo 
    'Verbindungsfehler: ' mysqli_connect_error($verbindung);
         }
         
    mysqli_close($verbindung);
    ?>
    Folgende Fehler kommen bei der Ausgabe:
    Warning: mysqli_fetch_assoc() expects parameter 1 to be mysqli_result, boolean given in .../details.php on line 19
    Warning: mysqli_free_result() expects parameter 1 to be mysqli_result, boolean given in .../details.php on line 27

    Hab schon alles versucht, google, selbstversuche hat aber alles nix gebracht.

    vielleicht liegt es auch schon an der Übergabe von Seite 1 zu Seite 2?

    Vielen Dank im Vorraus

    Hanseatischen Gruß,
    Torsten
    Fussballfans sind keine Verbrecher

    ...AFDFCH...

    cobra-kurier.de

  2. #2
    TP-Supporter Avatar von chorn
    Registriert seit
    Apr 2008
    Ort
    Verden
    Beiträge
    479
    Ich würd sagen das Query läuft so nicht, schon allein, weil du ein Leerzeichen zeischen dem Arraynamen und dem Arrayschlüssel hast, würde empfehlen mit dem Punktoperator Strings explizit zu verbinden

    http://tut.php-quake.net/de/mysql-php.html

    und dann auch mal Fehler abfragen

    Code:
    mysqli_query( ... ) or die( mysqli_error() . $sql );

  3. #3
    TP-Member Avatar von Puntotoddy
    Registriert seit
    Nov 2006
    Ort
    Rostock
    Beiträge
    51
    Moin chorn,

    Danke erst einal für Deine rasche Antwort gestern.

    Habe mich auch gleich ran gemacht und versucht eine Lösung zu finden, leider nur mit mässigem Erfolg...

    Der Fehler scheint ja (so hattest Du ja auch schon geschrieben) in der Variable $sql zu liegen.

    Hab folgendes versucht:
    PHP-Code:
    $sql 'SELECT * FROM meinetabelle WHERE id={'$_POST'.[id]}'
    und auch sowas:
    PHP-Code:
    $sql 'SELECT * FROM meinetabelle WHERE id='$_POST' . ['id']'
    sowie:
    PHP-Code:
    $sql 'SELECT * FROM meinetabelle WHERE id=$_POST . ['id']'
    Und einiges mehr...

    Immer wieder spuckte er mir folgende Fehlermeldungen aus,
    Parse error: syntax error, unexpected T_VARIABLE in usw...
    Parse error: syntax error, unexpected T_STRING in usw...

    Was ja soviel heißt wie Klammern falsch bzw Anführungszeichen falsch gesetzt.

    Hab auch versucht den Quelltext von deinem Linktip zu übernehmen, habs dann alles angepasst. Trotzdem die Fehlermeldungen siehe oben^^.
    Daher weiß ich das es nur an SELECT * FROM usw... liegen kann.

    Hab echt iwie schon alles versucht,
    Hast Du für mich vielleicht nicht noch einen anderen Lösungsweg?

    Hanseatischen Gruß,
    Torsten.
    Geändert von Puntotoddy (24.04.2012 um 11:09 Uhr)
    Fussballfans sind keine Verbrecher

    ...AFDFCH...

    cobra-kurier.de

  4. #4
    TP-Supporter Avatar von chorn
    Registriert seit
    Apr 2008
    Ort
    Verden
    Beiträge
    479
    Zitat Zitat von Puntotoddy Beitrag anzeigen
    Daher weiß ich das es nur an SELECT * FROM usw... liegen kann.
    Wenn ich das richtig verstehe wirfst du zwei Sachen durcheinander: einmal die Syntaxfehler die du in PHP machst (syntax error on line xyz) und das syntaktisch falsche Query das du an die Datenbank schickst.

    http://tut.php-quake.net/de/concat.html

    Beispiel 4 ist in etwa das was du suchst, du siehst auch hier im Forum an den farbigen Markierungen das da was nicht stimmt. Hol dir einen Editor wie Notepad++ und vergleich mal die unterschiedlichen Versionen.

    PHP-Code:
    $sql 'SELECT * FROM meinetabelle WHERE id=' $_POST'id' ] . '';
    mysqli_query$sql ) or die( mysqli_error() . $sql ); 

  5. #5
    TP-Member Avatar von Puntotoddy
    Registriert seit
    Nov 2006
    Ort
    Rostock
    Beiträge
    51
    Moin chorn,
    also ich denke das ich einen Fehler enttarnt habe, es sollte wohl GET statt POST heißen.
    falsch:
    PHP-Code:
    $sql 'SELECT * FROM meinetabelle WHERE id=' $_POST'id' ] . ''
    weil folgende Fehlermeldung:
    Notice: Undefined index: id in C:\...\details.php on line 15
    Warning: mysqli_query() expects at least 2 parameters, 1 given in C:\...\details.php on line 16
    Warning: mysqli_error() expects exactly 1 parameter, 0 given in C:\...\details.php on line 16
    SELECT * FROM meinetabelle WHERE id=

    richtig:
    PHP-Code:
    $sql 'SELECT * FROM meinetabelle WHERE id=' $_GET'id' ] . ''
    weil folgende Fehlermeldung:
    Warning: mysqli_query() expects at least 2 parameters, 1 given in C:\...\details.php on line 16
    Warning: mysqli_error() expects exactly 1 parameter, 0 given in C:\...\details.php on line 16
    SELECT * FROM meinetabelle WHERE id=1

    Er erkennt also schon mal, welche entsprechende ID gemeint ist.
    (Glaub ich zumindest)

    Dann wäre nur das Problem mit dem query zu lösen. Gibt es nicht sowas wie ein "Standartquery" irgenwo nachzulesen?
    Hab über die suche Verschiedene Sachen gefunden, die aber irgendwie nicht so aussehen wie meine.
    Viel mehr Variablen und Anweisungen.

    PS: Bitte entschuldige wenn ich mich nicht richtig ausdrücken kann, ich bin kein Profi.
    Hab mein .php-Wissen von Lehr-DVDs ala V2B und Galileo also nur das Standartwissen.
    (sehen und verstehen is echt mühsam)
    Ich schreibe lieber .html ist wesentlich einfacher dafür kann ich das aber 1+.

    Hanseatischen Gruß
    Torsten.
    Fussballfans sind keine Verbrecher

    ...AFDFCH...

    cobra-kurier.de

  6. #6
    TP-Supporter Avatar von chorn
    Registriert seit
    Apr 2008
    Ort
    Verden
    Beiträge
    479
    Schön das du die Fehlermeldungen postest, aber ohne aktuellen, vollständigen Code ist deine Frage nicht nachvollziehbar.

  7. #7
    TP-Member Avatar von Puntotoddy
    Registriert seit
    Nov 2006
    Ort
    Rostock
    Beiträge
    51
    ups...

    hier der Code ist aber noch fast der selbe wie zum anfang.
    PHP-Code:
    <?php
         $server 
    'localhost';
         
    $benutzer 'root';
         
    $passwort '';
         
    $datenbank 'meinedatenbank';
         
         
    $verbindung = @mysqli_connect($server$benutzer$passwort);
         
         if (
    $verbindung){
            
    mysqli_select_db($verbindung$datenbank);
            
            if(
    mysqli_error($verbindung)){
                echo 
    'Fehler: ' mysqli_error($verbindung);
            }else{
                
    $sql 'SELECT * FROM meinetabelle WHERE id=' $_GET'id' ] . '';
                
    $abfrage mysqli_query$sql ) or die( mysqli_error() . $sql ); 
                
                while(
    $bestand mysqli_fetch_assoc($abfrage)){
                    echo 
    "<table width='300' border='1' cellspacing='0' cellpadding='0'>";
                    echo 
    "<tr>";
                    echo 
    "<td align='center' width='20'>{$bestand['id']}</td>";
                    echo 
    "<td align='center' width='140'>{$bestand['spalte1']}</td>";
                    echo 
    "<td align='center' width='140'>{$bestand['spalte2']}</td>";
                }
                echo 
    '</tr></table>';
                
    mysqli_free_result($abfrage);
            }
         }else{
            echo 
    'Verbindungsfehler: ' mysqli_connect_error($verbindung);
         }
         
    mysqli_close($verbindung);
    ?>
    Ich versteh auch nicht warum das query falsch sein sollte denn wenn ich statt:
    PHP-Code:
                $sql 'SELECT * FROM meinetabelle WHERE id=' $_GET'id' ] . '';
                
    $abfrage mysqli_query$sql ) or die( mysqli_error() . $sql ); 
    sowas eingebe,
    PHP-Code:
                $sql 'SELECT * FROM meinetabelle where id=1';
                
    $abfrage mysqli_query($verbindung$sql) or die( mysqli_error() . $sql ); 
    zeigt er mir ja über die händisch eingegebe id den entsprechenden Datensatz an, habs getestet.
    Ich krieg hier langsam nen Fön.

    Hanseatischen Gruß,
    Torsten
    Geändert von Puntotoddy (25.04.2012 um 13:09 Uhr)
    Fussballfans sind keine Verbrecher

    ...AFDFCH...

    cobra-kurier.de

  8. #8
    TP-Supporter Avatar von chorn
    Registriert seit
    Apr 2008
    Ort
    Verden
    Beiträge
    479
    PHP-Code:
    $verbindung = @mysqli_connect($server$benutzer$passwort); 
    Mach mal das @ weg, das unterdrückt ggf. Fehlermeldungen.

    Laut Manual

    http://php.net/manual/de/mysqli.query.php

    erwartet mysqli_query immer zwei Parameter

    mixed mysqli_query ( mysqli $link , string $query [, int $resultmode = MYSQLI_STORE_RESULT ] )

    ...

    Parameter-Liste ¶

    link

    Nur bei prozeduralem Aufruf: Ein von mysqli_connect() oder mysqli_init() zurückgegebenes Verbindungsobjekt.
    Das wäre in deinem Fall $verbindung, also

    PHP-Code:
    $verbindung = @mysqli_connect($server$benutzer$passwort); 
    ...
            
    mysqli_select_db($verbindung$datenbank); 
    ...
                
    $sql 'SELECT * FROM meinetabelle WHERE id=' $_GET'id' ] . ''
                
    $abfrage mysqli_query$verbindung$sql ) or die( mysqli_error$verbindung ) . $sql ); 
    Jetzt vergleich mal die beiden Zeilen die du gepostet hast.

    Warning: mysqli_query() expects at least 2 parameters
    ... ist keine Fehlermeldung vom SQL-Server, sondern von PHP.

  9. #9
    TP-Member Avatar von Puntotoddy
    Registriert seit
    Nov 2006
    Ort
    Rostock
    Beiträge
    51
    Moin Chorn,

    funktioniert einwandfrei.

    Danke für Deine Hilfe.
    Fussballfans sind keine Verbrecher

    ...AFDFCH...

    cobra-kurier.de

  10. #10
    TP-Veteran
    Registriert seit
    Jan 2008
    Ort
    Hessen
    Beiträge
    1.033
    Hallo puntotoddy,

    sowas sollte man aber nicht machen:
    PHP-Code:
    $sql 'SELECT * FROM meinetabelle WHERE id=' $_GET'id' ] . ''
    Das ist Hackers-Liebling, die SQL-Injection

    Also entweder mysql_real_escape_string verwenden oder noch besser die $_GET['id'] einer Variablen zuweisen, dann validieren und erst dann in einem SQL-Statement verwenden.

Aktive Benutzer

Aktive Benutzer

Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)

Ähnliche Themen

  1. Aufbau einer internationalen Distribution
    Von belimo im Forum Business allgemein
    Antworten: 2
    Letzter Beitrag: 20.09.2008, 20:27
  2. Allgemeine Frage zum Aufbau einer HP
    Von OSSSSE im Forum Traum-Dynamik
    Antworten: 1
    Letzter Beitrag: 23.03.2008, 14:47
  3. Grundsätzlicher Aufbau einer Seite
    Von dix im Forum Dreamweaver & andere Webeditoren
    Antworten: 16
    Letzter Beitrag: 06.09.2007, 12:41
  4. Aufbau einer Mauer um die BRD geplant...
    Von boundles im Forum Einfach so ...
    Antworten: 30
    Letzter Beitrag: 18.11.2006, 13:10
  5. Aufbau einer Rechnung (Muster)
    Von Alingo im Forum Steuer & Buchführung
    Antworten: 4
    Letzter Beitrag: 05.01.2004, 17:29

Aktive Benutzer

Aktive Benutzer

Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)

     

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •  

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51