Verstehe das nicht..php Mysql

peper

Erfahrenes Mitglied
Hi es geht um einen Fehler der Auftritt sobald ich diesen teil des Quelltextes an die stelle setze, wie es unten der Fall ist.


Ich will nur die Variable $erklaerung noch haben ...
Sobald ich den Teil weglassse wird auch alles brav in die Tabelle eingetragen sobald ich dies wieder rein schreibe geht nix mehr bekomme aber auch keine Fehlermeldung.
PHP:
$abfrage = mysql_query("SELECT * FROM lexikon WHERE sprungmarke='".$y."'",$db);
while($myrow = mysql_fetch_row($abfrage))
     {
     $erklaerung=$myrow[3];
     }


PHP:
$db = mysql_connect("localhost","xxx","xxx");

mysql_select_db("usr_webxxx_5",$db);
$abfrage = mysql_query("SELECT * FROM lexikon WHERE sprungmarke='".$y."'",$db);

while($myrow = mysql_fetch_row($abfrage))
     {
     $erklaerung=$myrow[3];
     }

for ($i=0 ; $i<$s ; $i++)
{
      $result = mysql_query("SELECT * FROM AdminUser",$db);
      $wort = $a[$i];
      $Buchstabe = $wort{0};
      $old = array ("ä" , "ö", "ü", "ß", " ");
      $new = array ("ae" , "oe", "ue", "ss", "_");
      $sprungmarke = str_replace($old, $new,$wort);
      $sql = "INSERT INTO lexikon 
      (Buchstabe,wort,erklaerung,benutzer) 
      VALUES 
      (' $Buchstabe', '$wort', '$erklaerung', '$user')";
      $result = mysql_query($sql,$db);
}

echo '<meta http-equiv="refresh" content="1; URL=lexikon1.php?x='.$Buchstabe.'">';
echo '<b>Gleich gehts weiter...</b><br><br>';

}

LG Lars
 
Ahh richtig hatte ich vergessen zu erwähnen.
mysql_error sagt garnichts...

Es kann auch sein das ich es Falsch platziert hatte.
LG Lars
 
Ich vermute mal, $erklaerung ist unter Umständen ein recht komplexer String? Enthält der vielleicht Sonderzeichen (insbesondere Anführungszeichen), die Dir den SQL-Code beim INSERT zerschießen?
Laß Dir doch mal zur Kontrolle die Variable $sql ausgeben ...

Gruß, Caro
 
mysql_error() muss immer nach dder Abfrage platziert werden!

Ich habe bis jetzt noch nicht kapiert was du genau willst, mach mal ne genaue Beschreibung, weil aus "ich will noch die Variable $erklärung haben" verstehe ich nur Bahnhof.

;)

PHP:
$abfrage = mysql_query("SELECT * FROM lexikon WHERE sprungmarke='".$y."'",$db) or die(mysql_error());
while($myrow = mysql_fetch_row($abfrage))
     {
     $erklaerung=$myrow[3];
     }
 
Also ersteinmal.
$erklaerung enthält einen Kompletten Text mit Formatierungen,Anführungzeichen,html usw.

Ich will ihn Praktisch aus meinem Lexikon rausholen und auch noch unter anderen Begriffen eintragen.

Die variablen sind:
$erklaerung ist für den Text
$s enthält die anzahl der Begriffe die neu eingetragen werden sollen.
$wort ist der neue Begriff.
$Buchstabe ist der Buchstabe unter dem es im Lexikon später zu finden ist.
$sprungmarke gibt den Anker an unter dem man später direkt zum Text kommt.

mysql error gibt mir immer noch nix aus.
wenn ich mir $sql ausgeben lasse
steht das drinn

PHP:
INSERT INTO lexikon (Buchstabe,wort,erklaerung,benutzer) VALUES ('t', 'test', 'hier steht der test text drinne', 'peper')

Achso falls es wichtig ist...
Meine Tabelle besteht aus den Feldern
ID Buchstabe wort erklaerung sprungmarke benutzer

Und es ist immer noch so, dass sobald ich den teil entferne geht alles lediglich ohne text
PHP:
$abfrage = mysql_query("SELECT * FROM lexikon WHERE sprungmarke='".$y."'",$db) or die(mysql_error());
while($myrow = mysql_fetch_row($abfrage))
     {
     $erklaerung=$myrow[3];
     }


LG Lars
 
Zuletzt bearbeitet:
Was steht denn in $y?
Bzw.bau dir die Abfrage doch mal erst zusammen. zB. in $query speichern. Dann kannst du sie mal ausgeben und wirst evtl. schlauer draus. Falls nicht, kannst du die Abfrage ja mal per copy&paste in phpMyAdmin abschicken. Vll. wird man dadraus schlauer.

MfG
DJ
 
Was du mit dem zusammenbauen meinst weiß ich grade nicht.
Aber was ich merkwürdig finde ist das mit dem $y.
Ich habe das ganze nun mal zur ID geändert da mir dies besser erschien.
y wird von einer andere PHP Datei übergeben und enthält die ID des Textes.
PHP:
$db = mysql_connect("localhost","xxx","xxx");

mysql_select_db("usr_webxxx",$db);
$y=$_GET['ID'];
$abfrage = mysql_query("SELECT * FROM lexikon WHERE ID='".$y."'",$db);

Einen Fehler hab ich gefunden läuft aber leider immer noch nicht...
Fehler:
$result = mysql_query("SELECT * FROM AdminUser",$db);
geändert zu
$result = mysql_query("SELECT * FROM lexikon",$db);

LG Lars
 
Zuletzt bearbeitet:
So habe das ganze nun mal ohne die erklaerung eingefügt und schon geht alles.
Es scheint tatsächlich an den Formatierunegn zu liegen.

Wie kann ich den Text denn nun entschärfen
Geht das

Edit habe es geschaft mit mysql_real_escape_string hoffe das macht man auch so^^
LG Lars
 
Zuletzt bearbeitet:
korrekt .. und generel ein Tip,
querys am besten in einen String dann erst an mysql_query,
dann kann man das ganze sauberer debuggen.
 

Neue Beiträge

Zurück