php.de

Zurück   php.de > Webentwicklung > PHP Einsteiger > PHP Tipps 2005-2

 
 
LinkBack Themen-Optionen Thema bewerten
Alt 30.08.2005, 10:10  
Gast
 
Beiträge: n/a
Standard Dropdown gibt falschen Wert an DB

Hallöchen zusammen,
ich hoffe das wurde nicht schon gepostet. hab schon bissl gesucht, aber
nicht biel gefunden.

Folgendes:

Übergeben wird aus einem Dropdown die ID, nicht der Name der
aus der Tabelle abgefragt wird.

Ich hoffe ihr könnt mir helfen:

PHP-Code:
<html>
<head>
<title>Formular</title>
</head>
<body>

<?php
$db_host 
"localhost";
$db_user "root";
$db_pass "DataBase05";
$db_name "uhd";

$link mysql_connect($db_host$db_user$db_pass); mysql_select_db($db_name$link); ?>

<form action="<?php echo $PHP_SELF?>" method="post"> <table border=5>
<tr><td>Vorname: </td><td><input type="text" name="vorname" value="<?php echo $_POST['vorname']; ?>"></td></tr>
<tr><td>Nachname: </td><td><input type="text" name="nachname" value="<?php echo $_POST['nachname']; ?>"></tr></td>
<tr><td>Kostenstelle: </td><td><input type="text" name="kst" value="<?php echo $_POST['kst']; ?>"></tr></td>
<tr><td>Ort: </td><td><input type="text" name="ort" value="<?php echo $_POST['ort']; ?>"></tr></td>
<tr><td>System: </td><td><input type="text" name="pc" value="<?php echo $_POST['pc']; ?>"></tr></td>
<tr><td>System S/N: </td><td><input type="text" name="pc_sn" value="<?php echo $_POST['pc_sn']; ?>"></tr></td>
<tr><td>Techniker: </td><td><?php mysql_connect($db_host$db_user$db_pass);

mysql_select_db($db_name);
$result mysql_query("SELECT * FROM techniker");

$i "1";
?>
<select size="1" name="techniker">
<?php
while ($row mysql_fetch_array($result)) {
            echo 
'<option value="' $i '">' $row['vorname'] . " " $row['nachname'] . '</option>';

            
$i++;
}
?>
</select>
</td></tr>

<tr><td colspan=2 align=center>
<input type="submit" value="senden">
</td></tr></table> </form>
<?php
 
/*Daten in DB speichern*/

    
$sql "INSERT INTO pc_essen (vorname, nachname, kst, ort, pc, pc_sn, techniker, datum) VALUES
         ('"
.$_POST['vorname']."',
          '"
.$_POST['nachname']."',
          '"
.$_POST['kst']."',
          '"
.$_POST['ort']."',
          '"
.$_POST['pc']."',
          '"
.$_POST['pc_sn']."',
          '"
.$_POST['techniker']."',
          now())"
;

mysql_query($sql$link);
?>
</body>
</html>
 
Sponsor Mitteilung
PHP Code Flüsterer

Registriert seit: 21.08.2005
Beiträge: 4682
PHP-Kenntnisse:
Fortgeschritten

Alt 30.08.2005, 10:27  
Erfahrener Benutzer
 
Registriert seit: 05.07.2004
Beiträge: 578
WarrenFaith
WarrenFaith eine Nachricht über ICQ schicken
Standard

1. dein submitbutton braucht einen NAMEN ( name="ok-button" oder ähnliches)
Lerne wie ein Skript abgearbeitet wird!
Von oben nach unten!
Fazit:
Wenn deine Seite neu geladen wird, dann solltest du als erstes schauen ob dein Formular abgeschickt wurde.
das machst du mit if(isset($_POST['ok-button'])) ...
dann packst du deine Daten in dein Query und schickst es ab.
danach kannst du deine Daten auslesen und dein Drop-down erstellen.

PHP-Code:
<?php
<html>
<
head>
<
title>Formular</title>
</
head>
<
body>

<?
php
$db_host 
"localhost";
$db_user "root";
$db_pass "DataBase05";
$db_name "uhd";

$link mysql_connect($db_host$db_user$db_pass); mysql_select_db($db_name$link); ?>

<?php
 
/*Daten in DB speichern*/
if (isset($_POST['ok-button'])) {
    
$sql "INSERT INTO pc_essen (vorname, nachname, kst, ort, pc, pc_sn, techniker, datum) VALUES
         ('"
.$_POST['vorname']."',
          '"
.$_POST['nachname']."',
          '"
.$_POST['kst']."',
          '"
.$_POST['ort']."',
          '"
.$_POST['pc']."',
          '"
.$_POST['pc_sn']."',
          '"
.$_POST['techniker']."',
          now())"
;

    
mysql_query($sql$link);
}
?>

<form action="<?php echo $PHP_SELF?>" method="post"> <table border=5>
<tr><td>Vorname: </td><td><input type="text" name="vorname" value="<?php echo $_POST['vorname']; ?>"></td></tr>
<tr><td>Nachname: </td><td><input type="text" name="nachname" value="<?php echo $_POST['nachname']; ?>"></tr></td>
<tr><td>Kostenstelle: </td><td><input type="text" name="kst" value="<?php echo $_POST['kst']; ?>"></tr></td>
<tr><td>Ort: </td><td><input type="text" name="ort" value="<?php echo $_POST['ort']; ?>"></tr></td>
<tr><td>System: </td><td><input type="text" name="pc" value="<?php echo $_POST['pc']; ?>"></tr></td>
<tr><td>System S/N: </td><td><input type="text" name="pc_sn" value="<?php echo $_POST['pc_sn']; ?>"></tr></td>
<tr><td>Techniker: </td><td><?php mysql_connect($db_host$db_user$db_pass);

mysql_select_db($db_name);
$result mysql_query("SELECT * FROM techniker");

$i "1";
?>
<select size="1" name="techniker">
<?php
while ($row mysql_fetch_array($result)) {
            echo 
'<option value="' $i '">' $row['vorname'] . " " $row['nachname'] . '</option>';

            
$i++;
}
?>
</select>
</td></tr>

<tr><td colspan=2 align=center>
<input type="submit" value="senden">
</td></tr></table> </form>

</body>
</html>
?>
mit error_reporting(E_ALL); (oben in dein Script geschrieben) wirst du noch weitere probleme in deinem script erkennen, die du alle nach und nach lösen wirst müssen.

ganz nebenbei: Attribute bei HTML wie colspan oder align bekommen ihren wert in " (gänsefüßchen) oder ' sprich aus <td colspan=2 align=center> wird <td colspan="2" align="center">
du solltest daher deinen quellcode nochmals checken und den www.w3.org html-validator nutzen.
__________________
Developers-Guide.net
Senseless
WarrenFaith ist offline  
Alt 30.08.2005, 10:28  
Gast
 
Beiträge: n/a
Standard

Also ist die Programmierung des DDs richtig?
Der falsche Wert wird nur übergeben weil der Rest falsch programmiert ist!?
 
Alt 30.08.2005, 10:33  
Erfahrener Benutzer
 
Registriert seit: 05.07.2004
Beiträge: 578
WarrenFaith
WarrenFaith eine Nachricht über ICQ schicken
Standard

mit fällt da grade noch auf: deine tabelle techniker sollte eigentlich eine eindeutige ID als primärschlüssel haben.
wenn du später nicht auf DB probleme stoßen willst, solltest du dringend nicht mit $i sondern mit $row['ID'] arbeiten, denn was ist wenn du einen techniker löschst? dann sind alle Techniker mit einer höheren nummer ne nummer kleiner geworden und somit sind deine daten im eimer.
schlechtes datenbanklayout bzw schlechte umsetzung.
Versuch mal dich durch http://tut.php-q.net zu arbeiten, dort kannst du auch was zum thema datenbanken lernen.
__________________
Developers-Guide.net
Senseless
WarrenFaith ist offline  
Alt 30.08.2005, 10:40  
Gast
 
Beiträge: n/a
Standard

Zitat:
deine tabelle techniker sollte eigentlich eine eindeutige ID als primärschlüssel haben
Hat sie auch

Zitat:
...solltest du dringend nicht mit $i sondern mit $row['ID'] arbeiten...
Hab ich mir schon gedacht, werde ich machen.

Zitat:
Versuch mal dich durch http://tut.php-q.net zu arbeiten, dort kannst du auch was zum thema datenbanken lernen
Habe nun 3 Bücher zu php&mysql gelesen, ich dachte ich könnte schon viel
Danke, werd da mal reinschauen.
 
Alt 30.08.2005, 10:44  
Erfahrener Benutzer
 
Registriert seit: 05.07.2004
Beiträge: 578
WarrenFaith
WarrenFaith eine Nachricht über ICQ schicken
Standard

du solltest verknüpfungen zwischen tabellen halt über Schlüssel regeln und diese natürlich auch über die Programmierung berücksichtigen.
Aber du scheinst ein williger Lerner zu sein von daher wird es dir nicht schwer fallen, dich schnell auf sauberen Programmierstil einzustellen.
Viel glück und spass bei PHP & Co
__________________
Developers-Guide.net
Senseless
WarrenFaith ist offline  
Alt 30.08.2005, 10:53  
Gast
 
Beiträge: n/a
Standard

Danke, ich glaube mein Problem ist, ich fahre schon Ferrari und habe bisher auch
nur meine theoretische Prüfung bestanden.

Klartext, ich sollte mich evtl. erstmal mit kleineren Bereichen auseinander setzen
und nicht direkt in so ein großes Projekt zwingen(nicht nur das was im Quelltext steht)
 
 


Themen-Optionen
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

Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
Fester Wert bei Registrierung festlegen themr Datenbanken 1 07.03.2008 14:41
dropdown wert ausgewählt? nixahnung PHP Tipps 2008 4 29.02.2008 12:09
2 Werte per Dropdown abfragen nur einen Wert schreiben thron Datenbanken 13 19.02.2008 18:28
Mehrere abhängige dynamische DropDown Menues erstellen Cheesy PHP Tipps 2008 6 17.08.2007 16:41
nach grösstem (unbekannten) Wert suchen lindner Datenbanken 2 20.08.2006 22:13
Variablen Wert übergeben aus Dropdown Menü Avalas PHP Tipps 2006 18 13.06.2006 06:37
Funktion &amp;quot;in_array&amp;quot; gibt falschen Wert zurück? PHP-Fortgeschrittene 4 04.02.2006 18:47
array verarbeitung (schlag auf den hinterkopf) PHP Tipps 2007 9 16.11.2005 11:37
Vergleich von einem Wert, mit Werten aus einer Tabelle PHP Tipps 2005 14 01.11.2005 03:04
minus wert, plus wert in variable nutzen PHP Tipps 2005-2 5 22.10.2005 19:15
Function gibt immer falschen Wert zurück Schiedsrichter PHP Tipps 2005 12 18.05.2005 14:29
kleinsten und größten wert ermitteln niffi PHP Tipps 2005 14 26.04.2005 12:42
[Erledigt] is_dir liefert falschen Wert PHP-Fortgeschrittene 4 19.03.2005 12:27
Dropdown && Checkbox wert speichern? PHP Tipps 2005 2 27.02.2005 21:42
[Erledigt] Problem: per klick auf Button Wert erhöhen/verringern HTML, Usability und Barrierefreiheit 7 07.10.2004 08:31

Besucher kamen über folgende Suchanfragen bei Google auf diese Seite
sql datenbank liefert falschen wert, dropdown liefert falschen wert

Alle Zeitangaben in WEZ +2. Es ist jetzt 06:36 Uhr.




Powered by vBulletin® Version 3.7.2 (Deutsch)
Copyright ©2000 - 2012, Jelsoft Enterprises Ltd.
Search Engine Optimization by vBSEO 3.2.0
Aprilia-Forum, Aquaristik-Forum, Liebeskummer-Forum, Zierfisch-Forum, Geizkragen-Forum

Creative Commons License
Dieser Inhalt ist unter einer Creative Commons-Lizenz lizenziert.