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 ::

PHP 5.3 & MySQL 5.1

PHP 5.3 & MySQL 5.1 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 25.07.2012, 02:10:17
AltSim AltSim ist offline
Anfänger
 
Registriert seit: Jul 2012
Alter: 30
Beiträge: 3
Ganze Tabelle wird immer überschrieben :/

Hallo!

Ich habe ein nerviges Problem!

Und zwar habe ich ein Formular erstellt das die eingegeben Daten an ein PHP Script übergibt und dieses dann die Daten auf meine Datenbank überträgt.

Der Code im Script sieht so aus:

PHP-Code:
<?php

...

// Variablen aus dem Forumlar übernehmen
  
$nachname=$_POST['nachname'];
  
$vorname=$_POST["vorname"]; 
  
$adresse=$_POST["adresse"];
  
$steuernummer=$_POST["steuernummer"];
  
$zaehlerstand=$_POST["zaehlerstand"];
  
$auswahl=$_POST["auswahl"];


// Überpruefen ob der Kunde schon vorhanden ist
  
$query1 "SELECT steuernummer FROM wasser_2012 WHERE steuernummer LIKE '$steuernummer' and nachname LIKE '$nachname'"
  
$result mysql_query($query1); // Fehlermeldung ausgeben, bzw. Kunden einfuegen
  
$num=mysql_NumRows($result); 
  if (
$num)
  {
    if (
$auswahl == 1)
        {
            
$query2="UPDATE wasser_2012
            SET nachname='$nachname',
            vorname='$vorname',
              adresse='$adresse',
            steuernummer='$steuernummer',
            zaehlerstand_quartal_1='$zaehlerstand';"
;
            
               
$quartalausgabe "Quartal I";            
            }
            
        elseif (
$auswahl == 2)
        {
            
$query2="UPDATE wasser_2012
            SET nachname='$nachname',
            vorname='$vorname',
              adresse='$adresse',
            steuernummer='$steuernummer',
            zaehlerstand_quartal_2='$zaehlerstand';"
;
            
               
$quartalausgabe "Quartal II";        
            }
            
        elseif (
$auswahl == 3)
        {
            
$query2="UPDATE wasser_2012
            SET nachname='$nachname',
            vorname='$vorname',
              adresse='$adresse',
            steuernummer='$steuernummer',
            zaehlerstand_quartal_3='$zaehlerstand';"
;
            
               
$quartalausgabe "Quartal III";        
            }
            
        else
        {
            
$query2="UPDATE wasser_2012
            SET nachname='$nachname',
            vorname='$vorname',
              adresse='$adresse',
            steuernummer='$steuernummer',
            zaehlerstand_quartal_4='$zaehlerstand';"
;
            
               
$quartalausgabe "Quartal IV";             
            }
            
            
            
$result2 mysql_query($query2); 
            
    if (
$result2)
    { 
      print
"<p>Ihr Zählerstand in Höhe von <b>$zaehlerstand</b> für den <b>$quartalausgabe</b> wurde erfolgreich in die Datenbank aufgenommen.</p>";
     
      
    }
    else
    { 
       print
"Datenbankfehler! Kunde konnte nicht aufgenommen werden!";
    }  
            
  } 
  
      else 
          { 
            echo 
"Ihre Steuernummer <b>$steuernummer</b> wurde nicht gefunden!";
          }  
      
    
  
  
mysql_close(); 
?>
Die Daten werden zuerst übernommen und auf Variablen gespeichert.
Dann werden in mySQL alle Datensätze ausgewählt wo die Steuernummer und der Nachname gleich sind wie sie im Formular eingegeben wurden.

Dannach wird geprüft ob die auswahl (das ist im Formular in Listenfeld) entweder 1, 2, 3 oder 4 ist. Dazu hab ich verschiedene IF Verzweigungen angelegt.

Der einzige Unterschied bei diesen Verzweigungen ist das der Zählerstand in unterschiedliche Spalten gespeichert wird.

Soweit so gut ... nur wenn ich im Formular nun einen Datenstatz eingebe überspielt er mir die ganze Tabelle ... jede einzelne Spalte .. so wie es im Formular eingegeben wurde.

Ich finde einfach nicht heraus warum ... komischereweise hat es schon perfekt geklappt .. ich weiß leider nicht mehr was ich zerissen haben könnte dass es nun nicht mehr funktioniert.
Ich hab den Code auch schon komplett neu geschrieben ... Tabelle neu angelegt ... ohne Erfolg.

Überseh ich da im Code etwas? Ist im mySQL im Hintergrund etwa am laufen das mir immer alle Datensätze bei einem Update auswählt?

Hoffe ihr könnt mir helfen!

mfg AltSim
Mit Zitat antworten
  #2  
Alt 25.07.2012, 11:08:35
Benutzerbild von vt1816
vt1816 vt1816 ist offline
Administrator
 
Registriert seit: Jul 2004
Beiträge: 3.707
AW: Ganze Tabelle wird immer überschrieben :/

1. Übernimm niemals ungeprüft Daten in Deine Datenbank.
2. Wieso arbeitets Du mit LIKE aber ohne Platzhalter?
3. Bei einem UPDATE auf eine Datenbanktabelle ohne WHERE werden immer alle Datensätze aktualisiert.
4. ...
__________________
Gruss vt1816
Erwarte nicht, dass sich jemand mehr Mühe mit der Antwort gibt als Du Dir mit der Frage.
. . . . . Feedback wäre wünschenswert

Ich werde keinen privaten 1:1 Support leisten, außer ich biete ihn ausdrücklich an.
Ansosnten gilt: Hilfe ausserhalb dieses Thread (PN, WhatsApp, Skype, Mail, ICQ, etc...) nur per Barzahlung oder Vorauskasse!

Wenn man sich selbst als "Noob" bezeichnet, sollte man die Finger davon lassen.
Wenn man gewillt ist daran etwas zu ändern, lernt man Grundlagen!
Mit Zitat antworten
  #3  
Alt 25.07.2012, 14:00:53
AltSim AltSim ist offline
Anfänger
 
Registriert seit: Jul 2012
Alter: 30
Beiträge: 3
AW: Ganze Tabelle wird immer überschrieben :/

Ok danke für deine Hinweise!

Mit dem UPDATE und dem WHERE hattest du natürlich Recht ... das war ein Typischer Anfängerfehler der nicht passieren hätte dürfen!

Ich hatte mir eingebildet dass ja eh nur diese Datensätze geändert werden die gändert werden müssen da ich ja oben bereits ein WHERE drinnen habe.

Jetzt sieht mein Code so aus:

PHP-Code:
<?PHP

// Variablen aus dem Forumlar übernehmen
  
$nachname=$_POST['nachname'];
  
$vorname=$_POST["vorname"]; 
  
$adresse=$_POST["adresse"];
  
$steuernummer=$_POST["steuernummer"];
  
$zaehlerstand=$_POST["zaehlerstand"];
  
$auswahl=$_POST["auswahl"];


// Überpruefen ob der Kunde schon vorhanden ist
  
$query1 "SELECT steuernummer FROM wasser_2012 WHERE steuernummer LIKE '$steuernummer' and nachname LIKE '$nachname'"
  
$result mysql_query($query1); // Fehlermeldung ausgeben, bzw. Kunden einfuegen
  
$num=mysql_NumRows($result); 
  if (
$num)
  {
    if (
$auswahl == 1)
        {
            
$query2="UPDATE wasser_2012
            SET zaehlerstand_quartal_1='$zaehlerstand'
            WHERE steuernummer='$steuernummer' AND nachname='$nachname'"
;
            
               
$quartalausgabe "Quartal I";            
            }
            
        elseif (
$auswahl == 2)
        {
            
$query2="UPDATE wasser_2012
            SET zaehlerstand_quartal_2='$zaehlerstand'
            WHERE steuernummer='$steuernummer' AND nachname='$nachname'"
;
            
               
$quartalausgabe "Quartal II";        
            }
            
        elseif (
$auswahl == 3)
        {
            
$query2="UPDATE wasser_2012
            SET zaehlerstand_quartal_3='$zaehlerstand'
            WHERE steuernummer='$steuernummer' AND nachname='$nachname'"
;
            
               
$quartalausgabe "Quartal III";        
            }
            
        else
        {
            
$query2="UPDATE wasser_2012
            SET zaehlerstand_quartal_4='$zaehlerstand'
            WHERE steuernummer='$steuernummer' AND nachname='$nachname'"
;
            
               
$quartalausgabe "Quartal IV";             
            }
            
            
            
$result2 mysql_query($query2); 
            
    if (
$result2)
    { 
      print
"<p>Ihr Zählerstand in Höhe von <b>$zaehlerstand</b> für den <b>$quartalausgabe</b> wurde erfolgreich in die Datenbank aufgenommen.</p>";
     
      
    }
    else
    { 
       print
"Datenbankfehler! Kunde konnte nicht aufgenommen werden!";
    }  
            
  } 
  
      else 
          { 
            echo 
"Ihre Steuernummer <b>$steuernummer</b> oder ihr Name <b>$nachname</b> wurde nicht gefunden!<br>Bitte überprüfen Sie Ihre Eingaben!";
          }  
      
    
  
  
mysql_close(); 
?>
Meinst du mit dem prüfen dass ich die übergebenen Werte auf ihren Typ prüfen soll?
-> isnumeric usw.?
Mit Zitat antworten
  #4  
Alt 26.07.2012, 09:37:15
Benutzerbild von vt1816
vt1816 vt1816 ist offline
Administrator
 
Registriert seit: Jul 2004
Beiträge: 3.707
AW: Ganze Tabelle wird immer überschrieben :/

Zitat:
Zitat von AltSim Beitrag anzeigen
[..]
Meinst du mit dem prüfen dass ich die übergebenen Werte auf ihren Typ prüfen soll?
-> isnumeric usw.?
Zum Beispiel.

Stichwort SQL Injektion
__________________
Gruss vt1816
Erwarte nicht, dass sich jemand mehr Mühe mit der Antwort gibt als Du Dir mit der Frage.
. . . . . Feedback wäre wünschenswert

Ich werde keinen privaten 1:1 Support leisten, außer ich biete ihn ausdrücklich an.
Ansosnten gilt: Hilfe ausserhalb dieses Thread (PN, WhatsApp, Skype, Mail, ICQ, etc...) nur per Barzahlung oder Vorauskasse!

Wenn man sich selbst als "Noob" bezeichnet, sollte man die Finger davon lassen.
Wenn man gewillt ist daran etwas zu ändern, lernt man Grundlagen!
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

Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
Felderinhalt von einer Tabelle in eine andere Tabelle kopieren alex69 MySQLi/PDO/(MySQL) 1 23.03.2010 10:16:08
Feld hinzufügen, in Mysql Tabelle, Tabelle hat aktive Daten juerle PHP Grundlagen 2 19.03.2010 16:54:46
Daten nach Spalteninhalte aus anderer Tabelle sortieren paedda MySQLi/PDO/(MySQL) 2 14.05.2009 14:46:15
Tabelle in einem "fremden" Tag erzeugen Weide HTML, CSS und JavaScript Help! 18 06.02.2009 15:13:01
Tabelle verliert Datensätze ?! TuxCommander MySQLi/PDO/(MySQL) 5 26.05.2008 16:11:03


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


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


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