SELFPHP: Version 5.8.2 Befehlsreferenz - Tutorial – Kochbuch – Forum für PHP Einsteiger und professionelle Entwickler

SELFPHP


Professional CronJob-Service

Suche



CronJob-Service    
bei SELFPHP mit ...



 + minütlichen Aufrufen
 + eigenem Crontab Eintrag
 + unbegrenzten CronJobs
 + Statistiken
 + Beispielaufrufen
 + Control-Bereich

Führen Sie mit den CronJobs von SELFPHP zeitgesteuert Programme auf Ihrem Server aus. Weitere Infos



:: Buchempfehlung ::

Einführung in XHTML, CSS und Webdesign

Einführung in XHTML, CSS und Webdesign zur Buchempfehlung
 

:: Anbieterverzeichnis ::

Globale Branchen

Informieren Sie sich über ausgewählte Unternehmen im Anbieterverzeichnis von SELFPHP  

 

:: Newsletter ::

Abonnieren Sie hier den kostenlosen SELFPHP Newsletter!

Vorname: 
Name:
E-Mail:
 
 

Zurück   PHP Forum > SELFPHP > MySQLi/PDO/(MySQL)
Hilfe Community Kalender Heutige Beiträge Suchen

MySQLi/PDO/(MySQL) Anfänger, Fortgeschrittene oder Experten können hier Fragen und Probleme rund um MySQLi/PDO/(MySQL) diskutieren

Antwort
 
Themen-Optionen Ansicht
  #1  
Alt 04.11.2004, 17:11:01
Th_Heide Th_Heide ist offline
Anfänger
 
Registriert seit: Oct 2004
Beiträge: 79
Forumalrdaten -> Update der Datensätze in DB

Hallo Forum,

ich habe folgende Datei:
PHP-Code:
<? if ($ACTION == "") { ?>
<form name="eintragen" action="?" method="post">
<input type="hidden" name="ACTION" value="NEU">
<table cellspacing="0" cellpadding=0 border="0">
<tr>
    <td>ID:&nbsp;</td>
    <td><input type="text" name="id" size="2"></td>
</tr>
<tr>
    <td>Name:&nbsp;</td>
    <td><input type="text" name="name" size="40"></td>
</tr>
</table><br>
<input type="submit" value="Senden" name="eintragen"></p>
</form>
<a href="start.html">zurück</a>
</body>
</html>
<? } ?>


<? if ($ACTION == "NEU") { ?>
    <?php
      $eintragen 
$_POST['eintragen'];
      
$name $_POST['name'];
  
$id $_POST['id'];
  include(
"/home/www/web817/files/include.inc.php");
      if (
$eintragen) {
$db mysql_connect($sql_server$sql_user$sql_password);
        
$sql "INSERT INTO tabelle1 SET name = '$name', id= '$id'";
mysql_db_query("usr_web817_1"$sql) or die (mysql_error());
$ok=mysql_affected_rows();
        if (
$ok>0) {
          print 
"Verein eingetragen";
        } else {
          print 
"Fehler";
        }
        
mysql_close($db);
      }
     echo
"<br><br>";
     echo
"<a href=edit.php>zurück</a>";
    
?>
<? } ?>
Nun habe ich folgendes Problem, ich will gerne meine SQL-Abfrage auf Update umstellen.
Leider weis ich nicht so recht wie ich zurechtkommen soll.
Nach Eingabe der ID und des Namens in das Formular soll er durch absenden die jeweilige angegebene ID im Formular den Namen auch ändern.
Habe es bisher so probiert:
PHP-Code:
sql "Update tabelle SET name = '$name', id= '$id'"
Leider bekomme ich imemr einen Fehler der lautet: Duplicate entry..
Kann mir jemand helfen?

Grüße
Th.

Geändert von Th_Heide (04.11.2004 um 17:14:12 Uhr)
Mit Zitat antworten
  #2  
Alt 04.11.2004, 17:38:23
Benutzerbild von xabbuh
xabbuh xabbuh ist offline
SELFPHP Guru
 
Registriert seit: May 2003
Beiträge: 7.187
Eine id ist immer eindeutig und sollte NIE geändert werden.
In deinem konkreten Beispiel updatest du alle Datensätze und setzt in allen Datensätzen den Wert des Feldes id auf den Wert der Variablen $id.
Somit ist die id nicht mehr eindeutig und darum meckert MySQL.
Du solltest es am besten so machen, dass du nur den Namen eingibst und dann den Datensatz updatest, der zu dieser Id gehört:

Code:
<form method="POST" action="page.php">
<input type="hidden" name="id" value="2">
<input type="text" name="verein">
</form>
PHP-Code:
<?php
    extract
($_POST);    //  damit du nicht immer auf das $_POST-Array zurückgreifen musst

    
$sql "UPDATE
                tabelle
            SET
                verein = '$verein'
            WHERE
                id = '$id'"
;
    
mysql_query($sql);
?>
In dem Teil, der updated fehlen natürlich noch Sicherheitsabfragen etc.
Mit Zitat antworten
  #3  
Alt 04.11.2004, 18:21:54
Th_Heide Th_Heide ist offline
Anfänger
 
Registriert seit: Oct 2004
Beiträge: 79
Hallo,


leider aupdatet er die Datensätze nicht.
Habe deine gepostete Sql anweisung genommen und in meine gesteckt.
Ausser ich habe dies nciht geändert:
extract($_POST);
Oder muss das geändert werden...

Grüße
Th.
Mit Zitat antworten
  #4  
Alt 04.11.2004, 18:54:25
Benutzerbild von xabbuh
xabbuh xabbuh ist offline
SELFPHP Guru
 
Registriert seit: May 2003
Beiträge: 7.187
Zeige einfach mal, wie dein PHP jetzt aussieht.
Mit Zitat antworten
  #5  
Alt 04.11.2004, 19:14:59
Th_Heide Th_Heide ist offline
Anfänger
 
Registriert seit: Oct 2004
Beiträge: 79
anbei meine jetzige PHP-Datei bzw. der Auszug aus ihr...
PHP-Code:

<? if ($ACTION == "") { ?>
<form name="eintragen" action="?" method="post">
<input type="hidden" name="id" value="NEU">
<h2>A-Liga - Teams in die DB einfügen</h2>
<table cellspacing="0" cellpadding=0 border="0">
<tr>
    <td>ID:&nbsp;</td>
    <td><input type="text" name="id" size="2"></td>
</tr>
<tr>
    <td>Teamname:&nbsp;</td>
    <td><input type="text" name="name" size="40"></td>
</tr>
</table><br>
<input type="submit" value="Senden" name="eintragen"></p>
</form>
<a href="index.html">zurück</a>
</body>
</html>
<? } ?>


<? if ($ACTION == "NEU") { ?>
    <?php
      $eintragen 
$_POST['eintragen'];
      
$tname $_POST['tname'];
  
$id_a1nr $_POST['id_a1nr'];
  include(
"/home/www/web817/files/include.inc.php");
      if (
$eintragen) {
$db mysql_connect($sql_server$sql_user$sql_password);
 
       
$sql "UPDATE tabelle SET name = '$name' WHERE id= '$id'";

mysql_db_query("usr_web817_1"$sql) or die (mysql_error());
$ok=mysql_affected_rows();
        if (
$ok>0) {
          print 
"Verein eingetragen";
        } else {
          print 
"Fehler";
        }
        
mysql_close($db);
      }
     echo
"<br><br>";
     echo
"<a href=edit.php>zurück</a>";
    
?>
<? } ?>
Mit Zitat antworten
  #6  
Alt 04.11.2004, 19:28:57
Benutzerbild von yozek
yozek yozek ist offline
Junior Member
 
Registriert seit: May 2004
Ort: Köln
Alter: 43
Beiträge: 226
yozek eine Nachricht über ICQ schicken yozek eine Nachricht über MSN schicken
Laß dir mal die SQL ausgaben mit
PHP-Code:
print($sql); 
Da ich jetzt Feierabend mache, habe ich mir den Queltext nicht so genau angucken können...

Aber gibt mal die Variable aus und zeig sie uns ;)
__________________
yozek

King of my castle - 127.0.0.1
Computer befreien das Denken vom Rechnen
Mit Zitat antworten
  #7  
Alt 04.11.2004, 19:57:22
Th_Heide Th_Heide ist offline
Anfänger
 
Registriert seit: Oct 2004
Beiträge: 79
Er gibt mir leider nichts aus..

habe es an folgende Stelle gesetzt:
PHP-Code:
include("/home/www/web817/files/include.inc.php");
      if (
$eintragen) {
$db mysql_connect($sql_server$sql_user$sql_password);
 
       
$sql "UPDATE tabelle SET name = '$name' WHERE id= '$id'";

mysql_db_query("usr_web817_1"$sql) or die (mysql_error());
$ok=mysql_affected_rows();
        if (
$ok>0) {
          print 
"Verein eingetragen";
        } else {
          print 
"Fehler";
        }
        
mysql_close($db);
print(
$sql);

      } 
Mit Zitat antworten
  #8  
Alt 04.11.2004, 20:10:17
Benutzerbild von xabbuh
xabbuh xabbuh ist offline
SELFPHP Guru
 
Registriert seit: May 2003
Beiträge: 7.187
Re: Forumalrdaten -> Update der Datensätze in DB

Dem versteckten Eingabefeld in dem Formular mit dem Namen id muss natürlich auch ein Wert zugewiesen werden (die id des zu ändernden Datensatzes).

Zitat:
Er gibt mir leider nichts aus..
Dann ist die Bedingung if($eintragen) wohl nicht erfüllt.
Wo soll $eintragen überhaupt herkommen? Es gibt doch gar kein Formularfeld, welches du so benannt hast oder habe ich da etwas übersehen?
Mit Zitat antworten
  #9  
Alt 04.11.2004, 20:46:05
Th_Heide Th_Heide ist offline
Anfänger
 
Registriert seit: Oct 2004
Beiträge: 79
es ist ja so:

<? if ($ACTION == "NEU") { ?>
<?php
$eintragen = $_POST['eintragen'];
....

daher kommt das eintragen
Mit Zitat antworten
  #10  
Alt 04.11.2004, 21:34:21
chris17 chris17 ist offline
Senior Member
 
Registriert seit: Apr 2003
Alter: 57
Beiträge: 1.236
Code:
<form name="eintragen" action="?" method="post">

//...

$eintragen = $_POST['eintragen'];
$tname     = $_POST['tname'];
$id_a1nr   = $_POST['id_a1nr'];

// ...

$sql = "UPDATE tabelle SET name = '$name' WHERE id= '$id'";
Mit Zitat antworten
Antwort


Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
 

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

BB-Code ist an.
Smileys sind aus.
[IMG] Code ist aus.
HTML-Code ist aus.

Gehe zu


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


Powered by vBulletin® Version 3.8.3 (Deutsch)
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.


© 2001-2024 E-Mail SELFPHP OHG, info@selfphp.deImpressumKontakt