Sie befinden sich hier im Forenarchiv von phpforum.de wenn Sie direkt ins Forum möchten, klicken Sie bitte hier. Zur Startseite kommen Sie hier.

mysql nach Email suchen > Fehler

Hallo

ich möchte Daten von der einen Tabelle in die andere nach dem Suchkriterium "email" übertragen. "email" enthält eine normale Emailadresse. Das Problem ist aber, dass er die Emailadresse nicht finden kann, obwohl die garantiert in der Tabelle existiert. Gehe ich weiter und versuche die Email im Phpmyadmin zu finden habe ich dasselbe Problem. Ich kann die Email aus derselben Tabelle herauskopieren und dann unter suche die herauskopierte Email wieder eintragen und er findet sie trotzdem nicht. Wenn ich nach einer ID suche geht alles, kein Problem, doch mein Zeiger ist nunmal eine Emailadresse.

Code:                   In Zwischenablage kopieren (nur IE)
1">

Kann es sein, dass das "@" Symbol diese Suchanfrage verfälscht, oder sollten sich irgendwo Leerzeichen eingenistet haben, was ich mir aber nicht vorstellen kann.

MfG & Thx
Hier gehts zum Orginal Eintrag "mysql nach Email suchen > Fehler" im Forum

Antworten

Puuh, und wieder mal: was sagt denn
[doc]mysql_error[/doc]
*** Nobody ***


2.

der sagt eben nichts, weil es liegt irgendwie kein Fehler vor, obwohl er die Tabelle nicht aktualisiert


3.

mysql_error sagt hautsächlich nichts, weil du es nicht aufrufst!!


4.

probier mal so:
Code:                   In Zwischenablage kopieren (nur IE)
2">




5.

So sollte es eigentlich funktionieren.

und ich empfehle beim select die Felder anzugeben und nicht * . Das erleichtert einem die Arbeit in den anschließenden Codezeilen

[PHP]
$sql = "SELECT anrede, name, email
FROM kunden
WHERE mailcigars = 1";
$result = mysql_query($sql) or die(mysql_error());

$i = 1;
while($row = mysql_fetch_array($result))
{
$sql = "UPDATE newsletter
SET name='".$row['name']."', anrede='".$row['anrede']."'
WHERE email = '".$row['email']."'";
mysql_query($sql) or die(mysql_error());
echo $i.", ".$row['name'].", ".$row['anrede'].", ".$row['email'];
$i++;
}
[/PHP]

du musst schauen, ob die erste Tabelle überhaupt einen Wert hat, sollte dies der Fall sein, musst Du die nächste Syntax prüfen.


6.

wenn ich sage dass mysql_error nichts aussagt dann ist es auch so, ich habe natürlich mein Script nochmals editiert und dieser Befehl hinzugefügt, aber ich muss das hier ja nicht nochmals dokumentieren.

Er macht ja logischerweise keinen Fehler, da die Felder alle vorhanden sind, er findet einfach keine Übereinstimmung mit der email, und das ist ja ansich kein mysql fehler nur eine Nichterfüllung der Bedingung, aber warum das so ist kann ich mir nicht erklären.


7.

wenn du eine email im newsletter suchst, dann mach doch einfach mal einen direkten select mit einer email-adresse die vorhanden sein müsste

Ich habs jetzt zwar mal getestet, aber das sagt ja nichts wenn es bei mir funktioniert.

Ach ja, Du hast wahrscheinlich noch nichts vorgesehen für den Fall, wenn Die Email noch nicht in der Tabelle newsletter existiert.


8.

nun bekomme ich ein Fehler

You have an error in your SQL syntax. Check the manual that corresponds to your MySQL server version for the right syntax to use near 'Max', anrede='m' WHERE email = max.muster@blu

wie ich sehe wurde die Emailadresse abgetrennt, hat wohl was mit der spaltenlänge zu tun, allerdings sind alle auf varchar(120) eingestellt...


9.

WHERE email = max.muster@blu

Für mich fehlen da die ' um die Mailadresse

*** Nobody ***


10.

was mich einfach am meisten verwundert ist, dass phpmyadmin genau dieselben Fehler macht. Ich kann unter Suche nach einer Email suchen die ich aus der Tabelle kopiert habe und er findet sie dann nicht wieder. Ich glaube bald es ist ein Defekt in der Datenbank.


11.

Wenn Du glaubst, es ist ein Defekt in der Datenbank, dann mach eine neue zum testen, damit du einfach einen scriptfehler ausschließen kannst. Die Emails abgeschnitten ...... dann wären ja die emails doch nicht korrekt zum ändern verfügbar. also würde dein script passen


12.

also ich habe nun eine neue Tabelle erstellt, siehe da es klappt. Allerdings müsste ich nun die Daten aus der anderen Tabelle hier importieren und irgendwie will er das nicht so recht machen. Gibt es daher vielleicht ne Möglichkeit eine Tabelle zu reparieren?


13.

Du könntest es mit http://dev.mysql.com/doc/refman/4.0/de/repair-table.html versuchen

*** Nobody ***


14.

Code:                   In Zwischenablage kopieren (nur IE)
3">

Der Fehler liegt wohl daran. Ich habe die Daten in einer Textdatei vorliegend. Ich muss die Newslettertabelle zuerst mit diesen Adressen füllen. Wenn das gemacht ist, muss ich die Namens und Anrede einträge mit Hilfe einer anderen Tabelle nachtragen.
Dieses Nachtragen klappt dann, wenn ich 1-2 Emailadressen von Hand eintrage. Lass ich die Daten aber über das erste Script eintragen kann ich nix mehr nachtragen und die Tabelle ist dann soweit defekt, dass ich auch keine Bedingungen durch die email-adresse angeben kann.
Kann es sein, dass der Zeilenumbruch von der Textdatei miteingetragen wird?


Hier gehts zum Orginal Eintrag "mysql nach Email suchen > Fehler" im Forum
 
phpforum.de | Impressum