art-d-sign
-


Hinweise


Antwort
 
LinkBack Themen-Optionen Thema durchsuchen Thema bewerten
Alt 18.09.2003, 14:18   #1
TP-Senior
 
Registriert seit: Jul 2003
Ort: Upper Austria
Bernhard_at ist mal kurz schlecht aufgefallen
Unhappy

Wert des Formulars mit dem in der Datenbank vergleichen


Hallo allerseits!

Habe wieder einmal ein kleines PHP und MySQL-Problem.

Also ich habe eine Datenbank in der die Kundennr. gespeichert ist.
Der Kunde muss beim Anmeldungsformular seine Kundennr. eingeben.

Jetzt suche ich nach einer Möglichkeit diese Werte miteinander zu vergleichen.

Der erste noch nicht funktionierende Ansatz:
PHP-Code:
    // Include der MySQL-Config-Datei
    
include('db_config.php');


    
//  MySQL Connect
    
$link mysql_connect($dbserver,$dbuser,$dbpasswort);
    if (! 
$link)
        die(
"<strong>Keine Verbindung zum MySQL-Server möglich!</strong>");
    else {
        print(
"MySQL Connect war erfolgreich!<br><br>");
        }

    
// Datenbank selektieren
    
mysql_select_db($db,$link)
        or die(
"<strong>Konnte $db nicht öffnen:</strong>".mysql_error());
    
    
// Kdnr bereits vorhanden?
    
$kdnrcheckinhalt $kdnr;
    
    
// Daten aus der Datenbank
    
$sqli "SELECT kdnr FROM kunden ORDER BY kdnr";
    
$kdnrsuche mysql_query($sqli$link);    
    while(
$row mysql_fetch_array($kdnrsuche)){
        echo 
$row['kdnr'] . " / ";
    }
    

    
// Ist die eingegebene Kdnr bereits im Array vorhanden?
    
if(array_search($kdnrcheckinhalt$row['kdnr'])){
        print(
"Was ist mit du los?");
    }
        
    print(
"<br><br><br><br><br>"); 
Bernhard_at ist offline   Mit Zitat antworten


Alt 18.09.2003, 14:31   #2
TP-Senior
 
Registriert seit: Jul 2003
Ort: Upper Austria
Bernhard_at ist mal kurz schlecht aufgefallen
Gibt es nicht vielleicht eine bessere und einfachere Möglichkeit Werte in einer Datenbank zu suchen?
Bernhard_at ist offline   Mit Zitat antworten
Alt 18.09.2003, 15:11   #3
TP-Senior
 
Benutzerbild von glen
 
Registriert seit: Aug 2003
glen macht alles soweit korrekt
// Include der MySQL-Config-Datei, wo eigentlich $link = mysql_connect($dbserver,$dbuser,$dbpasswort); drinstehen sollte ^^
include('db_config.php');

if (! $link)
die("<strong>Keine Verbindung zum MySQL-Server möglich!</strong>");

$select = mysql_query("SELECT Kundennr WHERE 'kundenname' = $kundenname");

$kndn = "Kundennummer";

if ($formkndn = "")
{
echo "Das Feld ist leer";
}

if ($formkndn = "$kndn")
{
header (Location: dein link);

?>

------------------------------------

Irgendwie so auf die schnelle ^^

$formkndn ist die Variable vom Formular und $kndn ist die Variable wo du die Kundennr aus der DB abgespeichert hast ^^

Ich hoffe ich habe keine Fehler gemacht ?!
__________________
Charisma is important for me
glen ist offline   Mit Zitat antworten
Alt 18.09.2003, 15:11   #4
TP-Veteran
 
Benutzerbild von pauel
 
Registriert seit: Jan 2003
Ort: München
pauel hilft, wo's gehtpauel hilft, wo's geht
hi
istt nicht so schwer...
if ($_POST['kdnr'] == $row('kdnr']) {
//anwesiungsblock bei true
}
else {
//anwesiungsblock bei false
}
pauel ist offline   Mit Zitat antworten
Alt 18.09.2003, 15:57   #5
TP-Senior
 
Registriert seit: Jul 2003
Ort: Upper Austria
Bernhard_at ist mal kurz schlecht aufgefallen
Aha...

Also ich hab keines von euren zwei Vorschlägen zum laufen gekriegt.

Wäre nett wenn ihr das nochmal etwas genauer dokumentieren könntet.
Bernhard_at ist offline   Mit Zitat antworten
Alt 18.09.2003, 16:01   #6
TP-Senior
 
Registriert seit: Jul 2003
Ort: Upper Austria
Bernhard_at ist mal kurz schlecht aufgefallen
@axomento

PHP-Code:
$_POST['kdnr'] == $row('kdnr'
wäre mir neu das man so in einem Array sucht.
Bernhard_at ist offline   Mit Zitat antworten
Alt 18.09.2003, 16:32   #7
TP-Veteran
 
Benutzerbild von pauel
 
Registriert seit: Jan 2003
Ort: München
pauel hilft, wo's gehtpauel hilft, wo's geht
hoi.
wenn du den array in einer while schleife ausliest und dann guckst obs passt oder nicht!?

brauchst an example?
pauel ist offline   Mit Zitat antworten
Alt 18.09.2003, 16:33   #8
TP-Specialist
 
Benutzerbild von mike
 
Registriert seit: Jan 2002
Ort: TP/Dynamik
mike bringt sich richtig ein
vorausgesetzt, du willst nur nachschauen, ob der Wert da ist:

select kundennr from tabelle where kundennummer=deinenummer

$result = mysql_query($sql);

if($result->mysql_num_rows())
Datensatz da;
else
net da.
__________________
Gehelft? Hier kannst du dich bedanken.

mike
mike ist offline   Mit Zitat antworten
Alt 08.10.2003, 08:41   #9
TP-Senior
 
Registriert seit: Jul 2003
Ort: Upper Austria
Bernhard_at ist mal kurz schlecht aufgefallen
Unhappy

Es funktioniert immernoch nicht...

PHP-Code:

    $select 
mysql_query("SELECT kdnr WHERE 'kdnr' = $kdnr");

    
$kndn "Kundennr";

    if (
$_POST[kdnr] == $select['kdnr']) {
        print(
"true");
    }
    else {
        print(
"false");
    } 
Bernhard_at ist offline   Mit Zitat antworten
Alt 08.10.2003, 09:19   #10
TP-Greis
 
Benutzerbild von Lars
 
Registriert seit: Jun 2001
Ort: Bonn-Altstadt
Lars bringt sich richtig ein
Das kann auch nicht funktionieren. Schon in der Query ist ein Klopper -- aus welcher Tabelle soll er denn die Daten holen?

Du selektierst einfach denjenigen Datensatz aus der DB, dessen Kundennummer mit dem aus der Formulareingabe übereinstimmt. Danach überprüfst Du mit mysql_num_rows(), ob genau ein Treffer zurückgeliefert wurde*. Wenn ja, hast Du deine Übereinstimmung -- andernfalls existiert der Kunde nicht oder die Tabelle ist inkonsistent*.

*) Ich gehe jetzt mal davon aus, dass Du die Kundennummern nicht mehrfach vergeben hast.

PHP-Code:
mysql_query("SELECT sonstwas FROM kunden WHERE 'kdnr' = $kdnrAusFormular");
$check mysql_num_rows();

(
$check == 1) ? print("Kunde existiert") : print ("Kunde existiert nicht"); 
__________________
Give up yourself into the moment — The time is now.
Lars ist offline   Mit Zitat antworten
Alt 08.10.2003, 10:33   #11
TP-Specialist
 
Benutzerbild von mike
 
Registriert seit: Jan 2002
Ort: TP/Dynamik
mike bringt sich richtig ein
Zitat:
Original geschrieben von Bernhard_at
Es funktioniert immernoch nicht...

PHP-Code:

    $select 
mysql_query("SELECT kdnr WHERE 'kdnr' = $kdnr");

    
$kndn "Kundennr";

    if (
$_POST[kdnr] == $select['kdnr']) {
        print(
"true");
    }
    else {
        print(
"false");
    } 
In deinem Post sind meherere Fehler. Den mit dem SQL hat dir Lars schon mitgeteilt.
weiters kannst du leider nicht so einfach auf das $select Feld zugreifen. Dabei handelt es sich um eine Ressource ID = nix anderes als eine Speicheradresse.
Du musst vorab mit mysql_fetch_xxxx (siehe Manual) den Wert extrahieren.

Zu den Ansätzen:
if( mysql_num_rows($select)) = Schnelle und einfach Prüfung, ob ein DS da ist. Lässt sich aber unter Umständen via SQL-Injection aushebeln.

Deine Lösung: Query & nochmaliger Check auf Gleichheit des abgefragten Wertes: Umständlicher aber unbedingt zu empfehlen, wenn es sich um sowas wie eine Loginabfrage oder so handelt.
__________________
Gehelft? Hier kannst du dich bedanken.

mike
mike ist offline   Mit Zitat antworten
Alt 08.10.2003, 16:06   #12
TP-Senior
 
Registriert seit: Jul 2003
Ort: Upper Austria
Bernhard_at ist mal kurz schlecht aufgefallen
Danke, jetzt funktionierts!
Bernhard_at ist offline   Mit Zitat antworten
Alt 10.10.2003, 14:40   #13
TP-Senior
 
Registriert seit: Jul 2003
Ort: Upper Austria
Bernhard_at ist mal kurz schlecht aufgefallen
@ Lars

es funktioniert doch nicht...

Ich bekomme nur NULL zurück.


@ Longfang

geht leider auch nicht.
Bekomme immer False zurück.
Bernhard_at ist offline   Mit Zitat antworten
Alt 10.10.2003, 15:04   #14
TP-Specialist
 
Benutzerbild von mike
 
Registriert seit: Jan 2002
Ort: TP/Dynamik
mike bringt sich richtig ein
vorab, ich vermute, dass deine query net hinhaut.

mach folgende Sachen um Schritt für Schritt an den Fehler zu kommen.

- schreib deine Query in einen eigenen string lass dir den String ausgeben -> wird die Kundennummer mit ausgegeben?

- spendier der query eine fehlerabfangfunktion (or die(...)) mit einem schönen mysql_error()

- wenn du dir die Anzahl ausgeben lässt, dann mach ein echo nach der Zuweisung zur Vairable

Wenn du bis dahin den Fehler noch nicht gefunden hast (was ich jedoch bezweifle) schaun wir weiter

p.s. ich hoffe, du hast alle Fehler von den zuletzt von dir geposteten Code ausgebessert.
__________________
Gehelft? Hier kannst du dich bedanken.

mike
mike ist offline   Mit Zitat antworten
Alt 13.10.2003, 11:57   #15
TP-Senior
 
Registriert seit: Jul 2003
Ort: Upper Austria
Bernhard_at ist mal kurz schlecht aufgefallen
@ Longfang

Danke, wir kommen der Sache schon näher.

- In der Query wird die Kundennr. richtig eingesetzt.

- Fehlerabfangjäger eingebaut, leider auch kein Fehler

- Den Punkt versteh ich irgendwie nicht ganz. Wie funktioniert das?


PHP-Code:

    mysql_select_db
($db,$link);
    
    
$anfrage "SELECT * FROM `kunden` WHERE 'kdnr' = $kdnr";

    
$select mysql_query($anfrage,$link) or die (print("MySQLquery baut scheisse"));
    
    if (
$kdnr == $select['kdnr']){
        print(
"1. Teil der Schleife");
        
//header("Location: home.php?page=anmeldungstep3"); // Kdnr war richtig
    
} else {
        print(
"2. Teil der Schleife");
        
//header("Location: home.php?page=anmeldungstep2"); // Kdnr war falsch
    
}
    
    print(
"<br><br>" $kdnr "<br><br>" $kndn);
    print(
"<hr>");
    print(
"<br><br>" $anfrage); 

PS: Also wenn ich nix vergessen habe, müsste ich alle Fehler ausgebessert haben...

Geändert von Bernhard_at (13.10.2003 um 12:00 Uhr).
Bernhard_at ist offline   Mit Zitat antworten
Antwort

  Aktuelles Thema
  TP Hilfe Forum > Web-Editoren & Coding > Traum-Dynamik
Wert des Formulars mit dem in der Datenbank vergleichen Wert des Formulars mit dem in der Datenbank vergleichen
« weiterblättern | leidiges Thema BITTE um Hilfe | Ist die Datenbank machbar? »

Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
 
Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Thema bewerten
Thema bewerten:

Forumregeln
Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are an
Gehe zu


Alle Zeitangaben in WEZ +2. Es ist jetzt 21:04 Uhr.

Powered by: vBulletin Version 3.7 (Deutsch)
Copyright ©2000 - 2008, Jelsoft Enterprises Ltd. / Search Engine Friendly URLs by vBSEO 3.2.0 ©2008, Crawlability, Inc.
Traum-Projekt.com | Suchen | Archiv | Impressum | Kontakt | | | Nach oben |



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 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67

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