Erste Kunden-DB - Textfelder wie verknüpfen?

WinniPuh

Grünschnabel
Guten Morgen!

Ich möchte ein Kundendatenbank aufrufen, komme aber nicht weiter.

Ich möchte Textfelder in die Webseite integrieren, die mit der Tabelle "kunden" verknüpft werden sollen. Die Textfelder selbst sind nicht das Problem (Anrede, Vorname, Nachname ..), aber wie verknüpft man diese mit der DB?

Ich möchte dann - evtl. im seperaten Textfeld - den Nachnamen des Kunden eingeben und nun soll der entsprechende Datensatz angezeigt werden.

Wer kann mir hier Hilfestellung geben oder eine geeignete Lektüre empfehlen?

Hier die Datei "kunden.php":

PHP:
<?php 
$verbindung = mysql_connect("rdbms.strato.de", "U123456" , "meinpassword") or die("Die Verbindung zur Datenbank konnte nicht hergestellt werden!"); 
mysql_select_db("DB123456") or die ("Die Tabelle konnte nicht geoeffnet werden!"); 
?>

Die Suche nach den Kunden soll dann irgendwie so erfolgen:

PHP:
SELECT * FROM kunden WHERE textfeld LIKE '%Mustermann%';

Wer kann einem Anfänger helfen?

Für heute erst mal GUTE NACHT!
 
Hallo yaslaw!

Danke für die Links.
Aber irgendwie klappt es nicht so wie ich wollte.
Er werden mir zwar jetzt alle Datensätze schön untereinander angezeigt, aber soll wollte ich das irgendwie nicht.

Eigentlich sollten nur 2 Textfelder für die Eingabe von Vorname und Nachname da sein und ein Button "Suchen".

Erst nach Eingabe von VN und NN sollte nur der entsprechende Datensatz mit der kompletten Adresse in weiteren Textfeldern angezeigt werden. Textfelder deshalb, weil die Daten ja irgendwann mal geändert werden sollen z.B. bei Adressänderung. Das heißt, es sollen dann noch später "Buttons" wie "Speichern" oder "DS hinzufügen" irgendwie integriert werden.

Irgendwie komm ich da nicht weiter.
Evtl. ist das aber auch ein völlig falscher Weg. Ich dachte nur, es wäre einfacher alle Kundendaten immer ONLINE abrufen zu können, weil ich ja fast immer mobil unterwegs bin.

Hier mal meine sql.php

PHP:
<p>
<FORM ACTION="sql.php" METHOD="POST">
<table border="0">
<tr>
<td> <INPUT NAME="Vorname" SIZE="20" MAXLENGTH="20" value="Vorname"> </TD>
<td> <INPUT NAME="Nachname" SIZE="20" MAXLENGTH="20" value="Nachname"> </TD>
 
<td> <INPUT NAME=Suchen TYPE=SUBMIT VALUE="Suchen"> </TD>
</tr>
</table>
</p>
 
<?php 
$verbindung = mysql_connect("rdbms.strato.de", "U123456" , "meinpwd") or die ("Die Verbindung zur Datenbank konnte nicht hergestellt werden!"); 
mysql_select_db("DB123456") or die ("Die Tabelle konnte nicht geoeffnet werden!"); 
 
$result = mysql_query("select * from kunden");
while ($row = mysql_fetch_object($result))
 {
 
echo "<p><table>";
echo "<tr><td>ID: $row->id</td></tr>";
echo "<tr><td><b>$row->Firma</b></td></tr>";
echo "<tr><td>$row->Anrede $row->Titel</td></tr>";
echo "<tr><td>$row->Vorname $row->Nachname</td></tr>";
echo "<tr><td>$row->Strasse</td></tr>";
echo "<tr><td>$row->PLZ $row->Ort</td></tr>";
echo "<tr><td>&nbsp;</td></tr>";
echo "<tr><td>Telefon: $row->Telefon</td></tr>";
echo "<tr><td>Mobil: $row->Mobil</td></tr>";
echo "<tr><td>E-Mail: $row->EMail</td></tr>";
echo "<tr><td>------------------------------</td></tr>";
echo "<tr><td>&nbsp;</td></tr>";
echo "</table></p>";
}
mysql_free_result($result);
$suchen="Suchen";
 
mysql_close($verbindung);
?> 
 
</form>
 
Du musst natürlich noch das Formular auswerten



PS: den Code einrücken macht ihn übersichtlicher
PHP:
<p>
    <form ACTION="sql.php" METHOD="POST">
        <table border="0">
            <tr>
                <td> <INPUT NAME="Vorname" SIZE="20" MAXLENGTH="20" value="Vorname"> </td>
                <td> <INPUT NAME="Nachname" SIZE="20" MAXLENGTH="20" value="Nachname"> </td>
                <td> <INPUT NAME=Suchen TYPE=submit VALUE="Suchen"> </td>
            </tr>
        </table>
    </form>
</p>

 
<?php
    // nur ausführen wenn das Formulat abgeschickt wurde
    // Abfragen der Forlumarresultete über $_POST (siehe form-Attribut METHOD
    if ($_POST('Suchen')){
        // Das SQL so zusammenstellen, dass der Filter mit dabei ist
        $sql = "SELECT * FROM kunden WHERE Vorname ={$_POST['Vorname']} AND {$_POST['Nachname']}";
    
        $verbindung = mysql_connect("rdbms.strato.de", "U123456" , "meinpwd") or die ("Die Verbindung zur Datenbank konnte nicht hergestellt werden!"); 
        mysql_select_db("DB123456") or die ("Die Tabelle konnte nicht geoeffnet werden!"); 
         
        $result = mysql_query($sql);
        while ($row = mysql_fetch_object($result)){
             
            echo "<p><table>";
            echo "<tr><td>ID: {$row->id}</td></tr>";
            echo "<tr><td><b>{$row->Firma}</b></td></tr>";
            echo "<tr><td>{$row->Anrede} {$row->Titel}</td></tr>";
            echo "<tr><td>{$row->Vorname} {$row->Nachname}</td></tr>";
            echo "<tr><td>{$row->Strasse}</td></tr>";
            echo "<tr><td>{$row->PLZ} {$row->Ort}</td></tr>";
            echo "<tr><td>&nbsp;</td></tr>";
            echo "<tr><td>Telefon: {$row->Telefon}</td></tr>";
            echo "<tr><td>Mobil: {$row->Mobil}</td></tr>";
            echo "<tr><td>E-Mail: {$row->EMail}</td></tr>";
            echo "<tr><td>------------------------------</td></tr>";
            echo "<tr><td>&nbsp;</td></tr>";
            echo "</table></p>";
        }
        mysql_free_result($result);
        $suchen="Suchen";
         
        mysql_close($verbindung);
    }
?>
 
2 Fehlermeldungen

Guten Abend!

Ich erhalte jetzt 2 Fehlermeldungen:


Warning: mysql_fetch_object(): supplied argument is not a valid MySQL result resource in /mnt/web7/11... in line 36


Line36:
while ($row = mysql_fetch_object ($result));


Habe mal das Semikolon noch angefügt. Jetzt wird auch die leere Form angezeigt. Aber irgendetwas scheint noch nicht zu stimmen.

*********************

Warning: mysql_free_result(): supplied argument is not a valid MySQL result resource in /mnt/web7 ... in line 55

Line 55:
mysql_free_result($result);


Keine Ahnung war hier nun falsch sein soll.
 
Beide Fehlermeldungen deuten auf eine Sache hin: $result enthält keine gültige Ergebnisresource. Das kann daran liegen, dass deine Anfrage fehlerhaft ist.
 
Füge mal vor $result = ein echo auf $sql aus, kopiere das ausgegeben SQL-Statement ins phpMyAdmin und prüfe es.

PHP:
        mysql_select_db("DB123456") or die ("Die Tabelle konnte nicht geoeffnet werden!"); 
echo $sql;         
        $result = mysql_query($sql);
 
2 Meldungen

Also, der Kunde "Martin Mustermann" existiert in meiner Minidatenbank. Evtl. störende Leerzeichen sind auch nicht da.

Ich erhalte jetzt folgende Meldungen:

SELECT * FROM kunden WHERE Vorname =Martin AND Mustermann
Warning: mysql_fetch_object(): supplied argument is not a valid MySQL result resource in /mnt/web .../sql_test.php on line 42

und

Warning: mysql_free_result(): supplied argument is not a valid MySQL result resource in /mnt/web7... /sql_test.php on line 61

Ich habe auch schon die 2 anderen Namen aus der DB probiert. Immer diesselbe Fehlermeldung.

Hier noch mal der Code:

Line 42 und 61 sind gekennzeichnet

PHP:
<?php
    // nur ausführen wenn das Formular abgeschickt wurde
    // Abfragen der Formularresultate über $_POST (siehe form-Attribut METHOD)
    if ($_POST['Suchen'])
{
        // Das SQL so zusammenstellen, dass der Filter mit dabei ist
        $sql = "SELECT * FROM kunden WHERE Vorname ={$_POST['Vorname']} AND {$_POST['Nachname']}";
 
        $verbindung = mysql_connect("rdbms.strato.de", "U123456" , "meinpwd") or die ("Die Verbindung zur Datenbank konnte nicht hergestellt werden!"); 
        mysql_select_db("DB123456") or die ("Die Tabelle konnte nicht geoeffnet werden!"); 
        echo $sql; 
        $result = mysql_query($sql);
// Line 42        while ($row = mysql_fetch_object ($result));
{
 
            echo "<echo $sql; p><table>";
            echo "<tr><td>ID: {$row->id}</td></tr>";
            echo "<tr><td><b>{$row->Firma}</b></td></tr>";
            echo "<tr><td>{$row->Anrede} {$row->Titel}</td></tr>";
            echo "<tr><td>{$row->Vorname} {$row->Nachname}</td></tr>";
            echo "<tr><td>{$row->Strasse}</td></tr>";
            echo "<tr><td>{$row->PLZ} {$row->Ort}</td></tr>";
            echo "<tr><td>&nbsp;</td></tr>";
            echo "<tr><td>Telefon: {$row->Telefon}</td></tr>";
            echo "<tr><td>Mobil: {$row->Mobil}</td></tr>";
            echo "<tr><td>E-Mail: {$row->EMail}</td></tr>";
            echo "<tr><td>------------------------------</td></tr>";
            echo "<tr><td>&nbsp;</td></tr>";
            echo "</table></p>";
    }
// Line 61       mysql_free_result($result);
       $suchen="Suchen";
 
        mysql_close($verbindung);
    }
?>
 
Zerlegt die Abfrage doch einfach mal:
Code:
SELECT * FROM `kunden` WHERE `Vorname` = "Martin" AND `Vorname` = "Mustermann"
Da stellt sich mir eigentlich die Frage, was Mustermann in der Spalte Vorname zu suchen hat.
 
Meinst du so?

PHP:
 $sql = "SELECT * FROM kunden WHERE Vorname ={$_POST['Vorname']} AND Nachname = {$_POST['Nachname']}";

Selbe Fehlermeldungen.
Und ohne "Vorname = " + "Nachname =" gehts auch nicht anders:

PHP:
 $sql = "SELECT * FROM kunden WHERE $_POST['Vorname']} AND {$_POST['Nachname']}";
 

Neue Beiträge

Zurück