sql abfrage in ein "Formular"

  • Themenstarter Themenstarter puschelchen
  • Beginndatum Beginndatum
P

puschelchen

Guten Morgen :)
also ich hab ja meine Datenbank von phpmyadmin und diese würd ich gern abfragen nach Userid ,Vorname ,Nachname ,Firma. Doch es scheitert schon an der Userid
ich post euch mal den Code:
PHP:
<html>
<body>
<form action="" method="POST">
<div align="right"/>
Userid <input type="text" name="Userid"><br>
Vorname<input type="text" name="Vorname" ><br>
Nachname <input type="text" name="Nachname"><br>
Firma <input type="text" name="Firma" ><br>
Email<input type="text" name="Email" ><br>
Telefon<input type="text" name="Telefon"  ><br>
Laufzeit<input type="text" name="Laufzeit"><br>
Lizenz PC <input type="text" name="PCLizenzen"  ><br>
Seriennummer <input type="text" name="dpSrn"  ><br>
Datum Aktiv <input type="text" name="DatumAktiv"  ><br>
Datum End Aktiv <input type="text" name="DatumEndAktiv"   ><br>
<input type=submit name=submit value="Formular absenden"><br>
<?php
$Userid="";
$Host = "localhost";
$User = "david";
$Password = "a";
$dbname = "ABMC-Datenbank";
$tbl="Kunden";
$_link = mysql_connect($Host, $User, $Password);
    if (!$_link)
        {
        # Nein, also das ganze Skript abbrechen !
        die("Keine Verbindung zur Datenbank möglich: " .
            mysql_error());
        }
        if(isset($_POST['submit'])) {
        if(mysql_fetch_array(mysql_query('SELECT name FROM tbl WHERE Userid="'.$_POST['Userid'].'";'echo '<script type="text/javascript">alert("Die Userid ist vorhanden");</script>';
exit;
}
}
    # Datenbankverbindung wieder schliessen
    mysql_close($_link);
?>
</form>
</body>
</html>
Als Fehler bekomme ich:
mysql_fetch_array() expects parameter 1 to be resource, boolean given in /srv/www/htdocs/abfrage.php on line 32
wie bekomm ich die Daten ins Formular? und wie kann ich prüfen ob Datensatz existiert? denn hier funktionierts leider nicht :(
Vielen Dank
 
Das ist ein PHP-Problem
-> verschoben

öhm, du verschachtelst da mehrere Funktionen und schliesst die () an einem ganz komischen Ort. Ehrlich gesagt, sehe ich sie nirgends schliessen
Zerleg das mal in einzelne saubere Zeilen. Anschliessend:
Da die diese Art von Fragen sehr oft kommt, habe ich mal ein Tutorial geschrieben wie man am besten auf Fehlersuche geht.
PHP MySQL Debug Queries
Geh es doch mal durch und falls du die Lösung nicht findest, poste mal das ausgegebe SQL-Statement ins Forum.
 
PHP:
<html>
<body>
<form action="" method="POST">
<div align="right"/>
Userid <input type="text" name="Userid"><br>
Vorname<input type="text" name="Vorname" ><br>
Nachname <input type="text" name="Nachname"><br>
Firma <input type="text" name="Firma" ><br>
Email<input type="text" name="Email" ><br>
Telefon<input type="text" name="Telefon"  ><br>
Laufzeit<input type="text" name="Laufzeit"><br>
Lizenz PC <input type="text" name="PCLizenzen"  ><br>
Seriennummer <input type="text" name="dpSrn"  ><br>
Datum Aktiv <input type="text" name="DatumAktiv"  ><br>
Datum End Aktiv <input type="text" name="DatumEndAktiv"   ><br>
<input type=submit name=submit value="Formular absenden"><br>
<?php
$Userid=$_POST["Userid"];
$Host = "localhost";
$User = "david";
$Password = "a";
$dbname = "ABMC-Datenbank";
$tbl="Kunden";
$_link = mysql_connect($Host, $User, $Password);
    if (!$_link)
        {
            die("Keine Verbindung zur Datenbank möglich: " .
            mysql_error());
        }
    $sql = "SELECT username FROM $tbl WHERE Userid = '".$_POST['Userid']."'";
    $result = mysql_query($sql) OR die(mysql_error());

    if(!$result) {
    echo '<script type="text/javascript">alert("Die Userid ist vorhanden");</script>';
}
    mysql_close($_link);
?>
</form>
</body>
</html>
Ausgabe:
No database selected
 
Ok habs nun durch
verändert:
PHP:
<html>
<body>
<form action="" method="POST">
<div align="right"/>
Userid <input type="text" name="Userid"><br>
Vorname<input type="text" name="Vorname" ><br>
Nachname <input type="text" name="Nachname"><br>
Firma <input type="text" name="Firma" ><br>
Email<input type="text" name="Email" ><br>
Telefon<input type="text" name="Telefon"  ><br>
Laufzeit<input type="text" name="Laufzeit"><br>
Lizenz PC <input type="text" name="PCLizenzen"  ><br>
Seriennummer <input type="text" name="dpSrn"  ><br>
Datum Aktiv <input type="text" name="DatumAktiv"  ><br>
Datum End Aktiv <input type="text" name="DatumEndAktiv"   ><br>
<input type=submit name=submit value="Formular absenden"><br>
<?php
error_reporting(E_ALL);
$Userid=$_POST["Userid"];
$Host = "localhost";
$User = "david";
$Password = "a";
$dbname = "ABMC-Datenbank";
$tbl="Kunden";
mysql_connect('localhost', 'david', 'a') or die  ("Keine Verbindung möglich: ".mysql_error());
mysql_select_db($dbname) or die  ("Keine Verbindung möglich: ".mysql_error());
    $sql  = "UPDATE $tbl SET Userid = '{$Userid}'  WHERE Userid = {$Userid};";
    mysql_query($sql) or die(mysql_error());
    echo mysql_affected_rows();

?>
</form>
</body>
</html>
so meine ausgabe :
0
Kann ich das irgendwie machen das meine Felder gefüllt werden und wenn ich auf "Formular absenden (der name wird noch geändert) geh erst die Daten angezeigt werden? :)
 
Dir ist schon klar das bereits beim ersten Aufruf der Seite die Update-Anweisung ausgeführt wird.

Ist das so gewollt?
 
habs genau so gemacht wie es dort steht
Userid= Int.

Was steht wo und wann wird die 0 am Bildschirm ausgegeben?

Wie oben bereits geschrieben wird die Update-Anweisung gleich ausgeführt wenn die Seite aufgerufen wird. Ist zu dieser Zeit bereits ein Wert für die UserId vorhanden? Kann ja eigentlich gar nicht sein, weil du übergibst ja einen POST-Wert an die Variable und dieser kann frühestens nach dem Abschicken des Formulars übergeben werden.
 
Zurück