php.de

Zurück   php.de > Webentwicklung > PHP Einsteiger > PHP Tipps 2004

 
 
LinkBack Themen-Optionen Thema bewerten
Alt 21.10.2004, 11:42  
Gast
 
Beiträge: n/a
Standard Problem mit Variablenübergabe

Hallo,
ich habe Probleme mit der Übergabe der Variable 'weiter'.
Vielleicht weiss jemand woran es liegen könnte:

Code:
[Rubriken.php]
$tab = "pc";
$optik = "PC";
$ueberschrift = "<a href=\"beitrag.php?weiter=$tab&r=$optik\" face=\"Verdana, Arial, Helvetica, sans-serif\">neues Thema Rund um den PC</a></font>"; }
Mit echo kann ich den Inhalt der übergebenen Variable 'weiter' ausgeben, aber sobald ich den Inhalt der Variable mit case abfrage oder 'weiter' in eine SQL-Abfrage einbaue ist der Inhalt leer! In einer If-Abfrage kann ich 'weiter' jedoch wiederum abfragen.
Wenn ich $_GET['weiter'] gegen den Tabellennamen tausche kann ich problemlos in meine Tabelle schreiben!

Code:
[beitrag.php]
if ($thema != "" and $textfeld != "")
{
$sql = sprintf("INSERT INTO %s (titel, erstellt, text) VALUES ('%s', '%s', '%s')",
$_GET['weiter'],
mysql_real_escape_string($thema),
date("d.m.Y H:i"),
mysql_real_escape_string($textfeld));

if (mysql_query($sql))
{
// Okay
}
else
{
printf("

MySQL error %d: %s</p>\n", mysql_errno(), htmlentities(mysql_error()));
}
}
 
Sponsor Mitteilung
PHP Code Flüsterer

Registriert seit: 21.08.2005
Beiträge: 4682
PHP-Kenntnisse:
Fortgeschritten

Alt 21.10.2004, 11:55  
Gast
 
Beiträge: n/a
Standard

Ich schätze, dass Dein Ifabfrage für weiter ="" einfach nur zufällig ein brauchbares Ergebnis liefert.

Mach mal am Dateianfang

echo ">>>".$_GET['weiter']."<<<";

rein.
 
Alt 21.10.2004, 12:35  
Gast
 
Beiträge: n/a
Standard

Bekomme den Inhalt von 'weiter' ausgegeben.

Mit echo klappt es immer, nur bei Abfragen ist der Inhalt auf einmal leer.
 
Alt 21.10.2004, 12:42  
Gast
 
Beiträge: n/a
Standard

Dann ist Deine Abfrage nicht ok.

a) mach mal echo $sql;

b) hänge hinter die Abfrage or die ("Kackmist, weil: ".mysql_error());
 
Alt 21.10.2004, 12:55  
Gast
 
Beiträge: n/a
Standard

bekomme diese fehlermeldung:

Kackmist, weil: 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 '(titel, erstellt, text) VALUES ('titel', '21.10.2004 12:53', 't

das datum schreibe ich als varchar in meine tabelle
 
Alt 21.10.2004, 12:58  
Gast
 
Beiträge: n/a
Standard

löööl.... Du hast echt "Kackmist" übernommen coole Aktion, Alter.

Tja, wie ich sagte - Du hast einen Syntaxfehler in der Abfrage.
Kannst Du mal eben das Echo der Query (Abfrage) posten?
 
Alt 21.10.2004, 13:06  
Gast
 
Beiträge: n/a
Standard

naja, ist ja schliesslich auch mist was da raus kommt.

hier der array:
INSERT INTO (titel, erstellt, text) VALUES ('überschrift', '21.10.2004 13:03', 'beitrag')
 
Alt 21.10.2004, 13:11  
Gast
 
Beiträge: n/a
Standard

INSERT INTO ... WAS? Der Name der Tabelle fehlt halt.

Mach doch mal das hier:

$sql = "INSERT INTO ".$_GET['weiter']." (titel, erstellt, text) VALUES ('".
mysql_real_escape_string($thema)."', '".
date("d.m.Y H:i")."', '".
mysql_real_escape_string($textfeld)."')");

mit sprintf kenne ich mich nicht aus, auch wenn mir die Syntax generell bekannt ist. Ich kann Dir nicht sagen, ob es einfach zu blöd ist, $_GET auszuwerten oder was da schief geht.

Meine Version sollte aber funktionieren.
 
Alt 21.10.2004, 13:20  
Gast
 
Beiträge: n/a
Standard

So hatte ich es auch schon mal probiert, das klappt einfach nicht.

Solange ich in der SQL-Abfrage an irgendeiner Stelle eine globale Variable übergebe sagt mir SQL immer sie sei leer!!

Wenn ich den Tabellennamen selber hinter INSERT INTO schreibe gibt es keine Probleme!
 
Alt 21.10.2004, 13:25  
Gast
 
Beiträge: n/a
Standard

Das kann nicht sein. Wenn die Var mit Echo existiert, existiert sie. Erzähl mir hier keinen

Weise doch als ALLERERSTE ZEILE folgendes zu: $weiter = $_GET['weiter'];

Und arbeite mit $weiter weiter

mit if ($weiter != '') echo "hab hier ein '".$weiter."' kannst Du ja mal DIREKT VOR der $sql-Zuweisung schauen, ob der Wert noch da ist.

Was Du beschreibst kann nur in einem einzigen Fall zutreffen: Du fragst die Variable $_GET['weiter'] nicht unter den gleichen Voraussetzungen ab, mit denen Du Deine Query erstellst. - Darum mal DIREKT VOR die Anweisung $sql = mysql_query.... setzen.

Wenn Du da ein Echo kriegst und Deine Abfrage trotzdem leer bleibt, dann bin ich auch ratlos, denn das ist faktisch unmöglich.

andere idee, verwegen aber wer weiß: Hast Du irgendwo unset($weiter) definiert?
 
 


Themen-Optionen
Thema bewerten
Thema bewerten:

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

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are an
Gehe zu

Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
[Erledigt] Galerie Problem... coraplanet PHP Tipps 2008 4 06.06.2008 13:42
Sessions Problem StephenKing PHP Tipps 2008 3 16.10.2007 08:30
datensätze defekt oder problem mit dem einlesen? Ministry Datenbanken 4 06.07.2006 18:42
problem!!! PHP Tipps 2006 6 08.02.2006 11:06
[Erledigt] wieder ein Problem bei phpmailer und smtp PHP Tipps 2006 24 07.02.2006 01:07
[Erledigt] Problem bei Massenmails versenden mit der Funktion mail PHP-Fortgeschrittene 3 19.01.2005 13:36
[Erledigt] Problem mit Übergabe einer Klasse in PHP4 PHP-Fortgeschrittene 10 08.01.2005 21:00
Problem mit Weiterleitung PHP Tipps 2004-2 16 22.12.2004 17:49
Smarty und PHP-Skript Problem PHP Tipps 2004-2 2 03.12.2004 22:27
[Erledigt] PHP Upload (Master Value/Local Value Problem) PHP-Fortgeschrittene 5 23.11.2004 07:21
Problem mit alter JavaScript-Funktion woods PHP Tipps 2004 1 13.08.2004 13:34
[Erledigt] Problem mit Timestamp! PHP Tipps 2004 24 08.06.2004 19:51
Login Problem PHP Tipps 2004 4 04.06.2004 18:46
foreach problem mAy^daY PHP Tipps 2004 3 02.06.2004 20:29

Besucher kamen über folgende Suchanfragen bei Google auf diese Seite
php mysql_real_escape_string leer, smarty mysql_real_escape_string leer, printf als übergabe php, mysql_real_escape_string sprintf, php case abfrage in variable übergeben, http://www.php.de/php-tipps-2004/10903-problem-mit-variablenuebergabe.html, printf anweisung mit variablenübergabe in php

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




Powered by vBulletin® Version 3.7.2 (Deutsch)
Copyright ©2000 - 2012, Jelsoft Enterprises Ltd.
Search Engine Optimization by vBSEO 3.2.0
Aprilia-Forum, Aquaristik-Forum, Liebeskummer-Forum, Zierfisch-Forum, Geizkragen-Forum

Creative Commons License
Dieser Inhalt ist unter einer Creative Commons-Lizenz lizenziert.