Ankündigung

Einklappen
Keine Ankündigung bisher.

[Erledigt] formular gibt leere seite aus

Einklappen

Neue Werbung 2019

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

  • Bigbossmen
    hat ein Thema erstellt [Erledigt] formular gibt leere seite aus.

    [Erledigt] formular gibt leere seite aus

    hi leute,

    bin neu hier und meine php kenntnisse sind noch in den kinderschuhen.
    trotzdem hab ich ein kleines problem.

    ich bin gerade dabei nen webshop aufzusetzen und habe auch schon schon das abfrage formular für die datenbank abfrage fertig (mit hilfe von nem kollegen)

    jetzt hab ich das problem das wenn ich die schlüsselnummern ins formular eingebe das mir eine leere seite ausgegeben wird

    hoffe ihr könnt mir helfen danke schon mal im vorraus


    hier das abfrage formular

    PHP-Code:
    </head>
    <
    body>
    Geben Sie einen vollständigen Datensatz ein und senden Sie das
    Formular ab
    :
    <
    form action "kba_neu.php" method "post">
    <
    input name="zu2.1 (alt 2)"zu2.1 (alt 2)<p>
    <
    input name="zu2.2 (alt 3)"zu2.2 (alt 3)<p>
    <
    input type="submit" name="gesendet">
    <
    input type="reset">
    </
    form>
    </
    body>
    </
    html>
    <!-- 
    neueBox_eof //--> 
    und hier die seite welche leer ausgegeben wird

    PHP-Code:
    <?php
    require_once ('dbconnect.php');

    // Nutzen von Datenbank - Name ist hinterlegt in
    // Konstante MYSQL_DATENBANK
    $db_sel mysql_select_dbDB1000427 )
       or die(
    "Auswahl der Datenbank fehlgeschlagen");

    $sql =  "SELECT * FROM 'KBA' WHERE zu21='.$_POST[zu2.1input].' AND zu22='.$_POST[zu2.2input].';
           
    $db_erg = mysql_query( $sql );
    if ( ! 
    $db_erg )
    {
      die('Ungültige Abfrage: ' . mysql_error());
    }

    echo '<table border="
    1">';
    while (
    $zeile = mysql_fetch_object(mysql_query("SELECT from 'KBA' where `zu21``zu22")
    {
      echo "<tr>";
      echo "<td>". 
    $zeile['HERSTELLER'] . "</td>";
      echo "<td>". 
    $zeile['MODELL'] . "</td>";
      echo "<td>". 
    $zeile['TYP'] . "</td>";
      echo "<td>". 
    $zeile['CBJVON'] . "</td>";
      echo "<td>". 
    $zeile['CBJBIS'] . "</td>";
      echo "<td>". 
    $zeile['KW'] . "</td>";
      echo "<td>". 
    $zeile['PS'] . "</td>";
      echo "<td>". 
    $zeile['CCM'] . "</td>";
      echo "<td>". 
    $zeile['ZYL'] . "</td>";
      echo "<td>". 
    $zeile['MCODELIST'] . "</td>";
      echo "<td>". 
    $zeile['KBANR'] . "</td>";
      echo "</tr>";
    }
    echo "</table>";

    mysql_free_result( 
    $db_erg );


    ?>

  • Bigbossmen
    antwortet
    danke

    aber ich werde es wirklich noch ändern nur muß das script wie gesagt erst mal laufen

    danke leute funktioniert

    Einen Kommentar schreiben:


  • uha
    antwortet
    Zitat von Bigbossmen Beitrag anzeigen
    wegen select * ok werd ich noch ändern möchte das script aber erst mal zum laufen bekommen komplett
    Quatsch, die Erfahrung zeigt, dass das nie geändert wird, wenn es nicht sofort richtig gemacht wird
    PHP-Code:
    $sql "SELECT 
               * 
             FROM 
               `kba`
             WHERE 
               `zu21`='" 
    mysqli_real_escape_string($db_link$_POST["zu21"]) . "'
             AND 
               `zu22`='" 
    mysqli_real_escape_string($db_link$_POST["zu22"]) . "'"

    Einen Kommentar schreiben:


  • lstegelitz
    antwortet
    PHP-Code:
    $sql "SELECT * FROM kba WHERE zu21 =$_POST["zu21"] AND zu22 =$_POST["zu22"]"
    Deine Stringverkettung ist falsch, das zeigt dir schon das Syntaxcoloring. Stichpunkt "Escaping"

    Einen Kommentar schreiben:


  • Geromel
    antwortet
    eine Fehlermeldung wäre nicht schlecht. Weil keiner kann wissen, was bei dir hängt. Eigne dir mal etwas Debugging an, das sollte man können, wenn man einen shop programmieren will.

    Einen Kommentar schreiben:


  • Bigbossmen
    antwortet
    aber jetzt hängts trotz tut schon wieder keine ahnung was ich wieder falsch mach

    PHP-Code:
    $sql "SELECT * FROM kba WHERE zu21 =$_POST["zu21"] AND zu22 =$_POST["zu22"]"
    sorry total vergessen die meldung mit rein zu geben

    Parse error: syntax error, unexpected 'kba' (T_STRING) in C:\xampp\htdocs\kba_neu1.php on line 13

    Einen Kommentar schreiben:


  • Bigbossmen
    antwortet
    kein thema bin euch sowieso sehr dankbar das ihr mir helft und mich auf den richtigen weg prügelt

    Einen Kommentar schreiben:


  • hausl
    antwortet
    die dbconnect hab absichtlich so gemacht da ich es so auch auf dem server liegen hab
    Aber dein "dbconnect.php" include connected ja nicht, du connectest erst danach, ich meinte nur der name ist falsch.. nicht mehr und nicht weniger...

    PHP-Code:
     // hierdrin sind vermutlich die Zugangsadten, dh die Definiton der Konstanten
    require_once ('dbconnect.php'); 

    // und hier connectest du erst
    $db_link mysqli_connect (MYSQL_HOST
                               
    MYSQL_BENUTZER
                               
    MYSQL_KENNWORT
                               
    MYSQL_DATENBANK);

    mysqli_set_charset($db_link'utf8'); 
    Auch wenn es I-Tüpfel-Reiterei ist, ich wollte es nur erwähnt haben.

    Einen Kommentar schreiben:


  • Bigbossmen
    antwortet
    ups stimmt hast recht
    die dbconnect hab absichtlich so gemacht da ich es so auch auf dem server liegen hab

    wegen select * ok werd ich noch ändern möchte das script aber erst mal zum laufen bekommen komplett

    grüße

    Einen Kommentar schreiben:


  • hausl
    antwortet
    Anmerkungen:

    - einmal mysqli_connect() reicht.

    - der Name deines Includes ist irreführend, der heißt dbconnect, das machst du aber erst danach.. nenn es dann besser dbconfig oder so (meine Meinung).

    - SELECT * ist immer noch pfui: http://php-de.github.io/jumpto/code-smells/#select-

    Einen Kommentar schreiben:


  • Bigbossmen
    antwortet
    so habs jetzt hinbekommen das mir ein datensatz ausgegeben wird.
    hab mir noch andere tut seiten angeschaut und hab damit die erste hürde genommen.

    jetzt muß ich nur noch das formular und den post befehl ein arbeiten
    PHP-Code:
    <?php
    error_reporting
    (E_ALL);
     
    require_once (
    'dbconnect.php');
     
    $db_link mysqli_connect (MYSQL_HOST
                               
    MYSQL_BENUTZER
                               
    MYSQL_KENNWORT
                               
    MYSQL_DATENBANK);

    mysqli_set_charset($db_link'utf8');

    $db_link mysqli_connect (
                         
    MYSQL_HOST
                         
    MYSQL_BENUTZER
                         
    MYSQL_KENNWORT
                         
    MYSQL_DATENBANK
                        
    );
     
    $sql "SELECT * FROM kba WHERE zu_21 ='0005' and zu_22 ='381'";
     
    $db_erg mysqli_query$db_link$sql );
    if ( ! 
    $db_erg )
    {
      die(
    'Ungültige Abfrage: ' mysqli_error(true));
    }
     
    echo 
    '<table border="1">';
    while (
    $zeile mysqli_fetch_array$db_ergMYSQL_ASSOC))
    {
      echo 
    "<tr>";
      echo 
    "<td>"$zeile['HERSTELLER'] . "</td>";
      echo 
    "<td>"$zeile['CBJBIS'] . "</td>";
      echo 
    "<td>"$zeile['zu_21'] . "</td>";
      echo 
    "<td>"$zeile['zu_22'] . "</td>";
      echo 
    "</tr>";
    }
    echo 
    "</table>";
     
    mysqli_free_result$db_erg );
    ?>

    Einen Kommentar schreiben:


  • hausl
    antwortet
    - du kannst Beiträge editieren

    - in meinem vorigen Beitrag stehen einige Dinge, mach die mal in deinen Code rein, dann wirst du sehen bist du ein Stück weiter

    - IMHO sind Bücher teilweise oft nicht ganz ideal, weil sich da ja auch ständig viel ändert und dann lernst du was "Altes". Mach das Schritt für Schritt Tutorial von der verlinken Website Peter Kropff, das ist ganz gut und aktuell. Wie gesagt meine Meinung. http://www.peterkropff.de/site/php/mysqli.htm

    Einen Kommentar schreiben:


  • Bigbossmen
    antwortet
    ups sry falsches editor fenster das ist der code den ich meinte
    PHP-Code:
    <?php

    ini_set
    ('display_errors'1);
    error_reporting(-1);  
      
    // Verbindungsvariable samt zugangsdaten festlegen
    $db = new mysqli('localhost','root','','test');

    // verbindung Überprüfen
    if (mysqli_connect_errno()) {
        
    printf("verbindung fehlgeschlagen: %s\n"mysqli_connect_error());
        exit();
    }




    //Datensatz-ausgabe festlegen
    $sql_befehl "SELECT * FROM 'kba2.2'";

    if (
    $resultat $db->query($sql_befehl)) {

    $datensatz $resultat->fetch_array();



    echo 
    $zeile['HERSTELLER'];
    echo 
    $zeile['KBANR'];
    echo 
    $zeile['MODELL'];


    } else {

    echo 
    "zugriff fehlgeschlagen!";
    }

    mysqli_close($db);

    ?>
    habe das buch php5 mysql5 von matthias kannengiesser um es besser zu verstehen arbeite ich mich gerade durch seine beispiele durch daher habe ich auch das @ vorm $db

    grüße

    Einen Kommentar schreiben:


  • hausl
    antwortet
    PHP-Code:
    $db mysqli_connect('localhost','root','','test'); 
    ...
    if (
    $resultat $db->query($sql_befehl)) { 
    Kann auch nicht gehen, woher soll das Objekt $db bei $db-query denn kommen? Siehe oben den verlinken Beitrag oder die Doku. Entweder Prozedual oder OOP, nicht mischen.

    Wenn du OOP machst, dann musst du mit $db = new mysqli.... dein Objekt erstellen.

    EDIT:
    Ganz praktisch ist auch immer, wenn man das hier mit rein nimmt und sich dir Fehler direkt anzeigen lässt, das kann ungemein helfen: http://php.net/manual/de/mysqli.error.php

    LG

    Einen Kommentar schreiben:


  • Bigbossmen
    antwortet
    das @ stand so im buch hab den code von dir noch reingenommen und jetzt gings komisch

    hab jetzt mit ner db abfrage weiter gemacht da bekomm ich nur zugriff fehlgeschlagen ausgegeben
    PHP-Code:

    <?php

    ini_set
    ('display_errors'1);
    error_reporting(-1);  
      
    // Verbindungsvariable samt zugangsdaten festlegen
    $db mysqli_connect('localhost','root','','test');

    // verbindung Überprüfen
    if (mysqli_connect_errno()) {
        
    printf("verbindung fehlgeschlagen: %s\n"mysqli_connect_error());
        exit();
    }

    //Datensatz-ausgabe festlegen
    $sql_befehl "SELECT * FROM 'kba2.2'";

    if (
    $resultat $db->query($sql_befehl)) {

    $datensatz $resultat->fetch_array();



    echo 
    $zeile['HERSTELLER'];
    echo 
    $zeile['KBANR'];
    echo 
    $zeile['MODELL'];


    } else {

    echo 
    "zugriff fehlgeschlagen!";
    }

    mysqli_close($db);

    Einen Kommentar schreiben:

Lädt...
X