Warnung: file_put_contents(/home/www/web1/html/php_dev/test.txt) [function.file-put-contents]: failed to open stream: Permission denied in /home/www/web1/html/php_dev/sys/lib.activity.php (Zeile 58)
If abfrage funktioniert nicht (Quelltextangabe) [Archiv] - PHP-Scripte PHP-Tutorials PHP-Jobs und vieles mehr

- Ad -
php-resource




Archiv verlassen und diese Seite im Standarddesign anzeigen :
If abfrage funktioniert nicht (Quelltextangabe)


 
phpil
29-05-2002, 14:20 
 
ICh bring das Teil hier nicht zum laufen:

<?php
$db = mysql_connect("localhost","news2","******");
mysql_select_db("unexinfo_de_db",$db);
$requete = "SELECT * from news2 ORDER BY id DESC LIMIT 1";
$result = mysql_query ($requete,$db);
$news = mysql_fetch_object ($result);
$id = $news->id + 1;
mysql_free_result($result);


if ($title == "" or $text == "")
{
echo "Bitte geben Sie einen Titel und einen Text ein !....<a href='javascript:history.back(1)'>zurück</a>";
}
else
{
$date = date("Y-m-d");

if ($extend == "v")
{
$extended = "...<a href='article.php?id=".$id."'>[mehr]</a>";
$artimage = "<img src='grafiken/".$artimg."' border='0' alt=''>";
}
else
{
$extended = "";
$arttext = "";
$artimage = "";
}

$sql="INSERT INTO news2 (id, sortdate, title, text, extended, arttext, artimage) VALUES ('$id', '$date', '$title', '$text', '$extend', '$arttext', '$artimage')";
mysql_query($sql, $db);

}

?>

Es geht darum das wenn ich ein Formular daruf verweise, sprich die Variablen

$title
$text
$extend (checkbox. Wenn angewählt = v)
$arttext
$artimg (nur Dateiname einer grafik)

an diese Datei gesendet werden, wird die Tabelle nicht erstellt.

Wenn ich die

if ($extend == "v")

rausnehme (gesamte if abfrage) funktioniert es. Leider hat die eingabe dann keinen sinn, da ich als $extended (müsste natürlich noch festgelegt werden, anstelle der Abfrage) ein v hätte, und für artimage nur den Dateinnamen (grafik.jpg).

Wieso verhindert die if($extend == "v") abfrage, das ein neuer Eintrag in der Tabelle angelegt wird ?

P.S. Die obere SQL Query findet heraus wie der nächste Automatisch eingefügt id heissen muss, in dem es sich den letzten eintrag aguckt, und dessen id +1 macht.

 
Troublegum
29-05-2002, 14:40 
 
Ich kann dir jetzt auch nicht sagen, worans liegt, nur eine Anmerkung.

Dass du die nächste ID abfagst, ist 1. unnötig und 2. kann das so auch fehlerhaft sein. :rolleyes:
Du nimmst so ja den Sinn von Auto Increment. Du brauchst keine ID anzugeben, der Wert wird automatisch erhöht.

 
phpil
29-05-2002, 14:44 
 
Mhhh...ja sicher....ABER

in meinem fall wird ja in $extended ein link eingefügt. Er verzweigt zu article.php. damit in articel.php aber was angezeigt wird, muss eine id mit übertragen werden. Die id DES newseintrags, der dort angezeigt werden soll. Und da ich den Newseintrag gerade erst erstelle, muss ich schon vorher wissen welche id er bekommen wird. Daher diese etwas komplizierte Query.

 
phpil
29-05-2002, 14:50 
 
Aha, ich weiss mehr.

Der mag das scheinbar nicht wenn ich seine Variablen mit HTML tags fütter...kann das sein ?

 
Troublegum
29-05-2002, 15:01 
 
muss eine id mit übertragen werden. Die id DES newseintrags, der dort angezeigt werden soll. Und da ich den Newseintrag gerade erst erstelle, muss ich schon vorher wissen welche id er bekommen wird. Daher diese etwas komplizierte Query.

Füge zuerst den Datensatz ein und übergebe dann die ID des gerade eingefügten Datensatzes ? Da sparst du dir nicht nur ne Query mit, es funktioniert auch immer. :)

 
phpil
29-05-2002, 17:20 
 
Ja, ok ist ne Idee....

und was ist jetzt mit der if abfrage ? Ich habe gemerkt wenn ich keinen HTML code reinmache funktionierts....kann das sein ?

 
KinNeko
30-05-2002, 03:19 
 
siehe anderer beitrag..die id mußt du nicht vorher wissen..
es gibt die mysql funktion last_insert_id.

http://www.mysql.com/doc/G/e/Getting_unique_ID.html


Alle Zeitangaben in WEZ +2. Es ist jetzt 20:57 Uhr.