Doppelte Einträge in Tabelle

  • Themenstarter Themenstarter andyK
  • Beginndatum Beginndatum
A

andyK

Hallo...


Ausgangssituation:


eingabe.php
User gibt ein paar Daten ein und klickt auf "Anzeigen".

anzeigen.php
Hier werden seine vorher eingegebenen Daten noch einmal angezeigt und er
hat die Möglichkeit, diese zu drucken und/oder sich damit zu registrieren.

Erst, wenn er auf Drucken oder Registrieren klickt, wird eine dritte Datei:

eintrag.php
ausgeführt und diese Daten werden in eineTabelle gespeichert.

Nun mein Problem:

Klickt er zuerst auf Drucken, werden die Daten gespeichert.
Klickt er anschließend auf Registrieren, werden die Daten nochmal gespeichert.

Ich habe also zwei Mal den gleichen Datensatz.
Nun habe ich probiert, dieses mit folgenden Zeilen zu lösen:
PHP:
$suche = "SELECT * FROM daten WHERE ABNR = ".$_REQUEST['anr']."'"; 
$suchen = mysql_query($suche); 
if (mysql_num_rows($suchen) > 0) die('exist'); 
else
{ $sql = "INSERT INTO daten" } // usw

Nach dem Drucken wird die Seite nur aktualisiert, sprich das Template wird
einfach nochmal (aber jetzt aus der eintrag.php) neu geladen.

Bei Registrieren wird mit
PHP:
$content = implode('', @file('http://localhost/projekt/test/login.php'));
echo $content;
die login.php geöffnet.

Bei beiden kommt jetzt aber folgende Fehlermeldung:
Warning: mysql_num_rows(): supplied argument is not a valid MySQL result resource in C:\minixampp\htdocs\test\eintrag.php on line 14

Das ist die if-Abfrage.

Das Ergebnis, was er eigentlich finden soll, ist eine Nummer, die zu Beginn
von der eingabe.php erstellt wurde.
 
Du hast ein ' vergessen

PHP:
$suche = "SELECT * FROM daten WHERE ABNR = '".$_REQUEST['anr']."'";

oder schreib direkt, um den Code übersichtlicher zu halten:

PHP:
if (mysql_num_rows(mysql_query(SELECT * FROM daten WHERE ABNR = '".$_REQUEST['anr']."')) == 0) 
{
mysql_query( "INSERT INTO daten");
}

Wenn du die Fehlermeldung "Warning: mysql_num_rows(): supplied argument is not a valid MySQL result resource" bekommst ist immer etwas mit dem SQL STring los - hier halt das fehlende ' oder was auch oft ist, ein Tippfehler, so das ein Feld angesprochen wird, welches nicht existiert!
 
Vielen Dank. Es klappt.

Nun noch eins.
Wenn der Datensatz bereits existiert, soll er mir nicht "exist" anzeigen, sondern
so weiter machen, wie bisher. Nur ohne speichern.

Wie mach ich das?
 
Der Beispielcode in meinem letzten Post macht dies, da einfach nur kontrolliert wird ob die Anzahl der gefundenen Einträge = 0 ist - wenn dies sos ist,wird eingetragen, sonst nicht!
 
Natürlich. Mein Fehler.

Aber vielleicht noch eins.

Was gibt es noch für Möglichkeiten, im selben Fenster die login.php
aufzurufen?

$content = implode('', @file('http://localhost/projekt/test/login.php''));
echo $content;

ist nicht wirklich optimal, weil ich die Nummer mit übergeben muss.
zum Beispiel: "login.php?nr=".$nr." irgendwie so.
 
Die Frage verstehe ich nun nicht wirklich sofort - besonders, weil ich dieses imploden eines files nicht kenne Also wenn ich Dateien einbinden möchte benutze ich include().

Ich weiß ja nicht, wie der Login funktioiniert, sofern es Session sind kannst du doch prüfen ob es eine aktive Session gibt und dann die Benutzerdaten ausgeben a la "Du bist eingeloggt als: ...." oder halt, wenn keine Session existiert das Loginfeld anzeigen lassen!
 
Ich bin mir nicht sicher, ob das von Nöten ist, aber ich will die Nummer mit übergeben, damit der User nach der Registration auf die Daten zurückgreifen kann.

Wie gesagt. Er gibt die Daten ein und kann sie anschließend drucken oder sich
registrieren, bzw. einloggen.
Da sich das eine in der eintrag.php abspielt und das registrieren/einloggen in der
login.php, weiß ich nicht, wie er von da aus dann auf seine vorher eingegebenen Daten zugreifen kann.
 
Zurück