LIMIT $x spuckt eine fehlermeldung aus!
Manuel
- php
hi zusammen,
habe folgendes problem und zwar will ich immer eine variable zahl von einträgen aus meiner DB löschen also habe ich mir das so gedacht:
$getinfo = mysql_query("SELECT COUNT(*) FROM test WHERE test.uid = '$pic_uid'");
$noc = mysql_fetch_row($getinfo);
echo $noc[0];
$del_comments = mysql_query(" DELETE FROM test
WHERE test.uid = '" . $pic_uid . "'
LIMIT '" . $noc[0] . "'
") or die(mysql_error());
leider kommt dann immer diese meldung:
3You have an error in your SQL syntax. Check the manual that corresponds to your MySQL server version for the right syntax to use near ''3'' at line 3
habe es zufor schon mit einer while schelife versucht, also das ganze dann so aussehen lassen:
while($noc[0] == 0)
{
$del_comments = mysql_query(" DELETE FROM test
WHERE test.uid =1
") or die(mysql_error());
}
leider brachte auch dieser versuch keinen erfolg!
ich hoffe einer von euch hat ne idee, diese recht simple sache von der theorie her zu beantworten!
in diesem sinne lg aus dessau manuel...
hi,
$del_comments = mysql_query(" DELETE FROM test
WHERE test.uid = '" . $pic_uid . "'
LIMIT '" . $noc[0] . "'
") or die(mysql_error());
3You have an error in your SQL syntax. Check the manual that corresponds to your MySQL server version for the right syntax to use near ''3'' at line 3
gibt es einen besonderen grund, warum du eine zahl wie einen string notierst?
gruß,
wahsaga
nein!
aber es geht auch nicht wenn ich '$noc[0]' oder auch nur $noc[0] schreibe!
aber warum? stellt mich vor eine unlösbare frage...! was meint ihr dazu?
lg manuel
yo,
aber warum? stellt mich vor eine unlösbare frage...! was meint ihr dazu?
gib doch mal die query mit echo aus. eventuell ist es ein fehlendes leerzeichen.....
Ilja
<?
// MUSS AM ANFANG STEHEN! Legt den relativen Pfad zum Stammverzeichnis fest
$ttl_root = './../';
// MUSS VOR TOP STEHEN! Legt fest, ob nur autorisierte User zugreifen können
$sec["auth_requested"] = 1;
include($ttl_root . "includes/top_box.php");
$pic_uid = $_GET["uid"];
$getinfos = mysql_query("SELECT
ttl_galleries_nick.uid as uid,
ttl_galleries_nick.user_id as user_id,
ttl_galleries_nick.stamp as stamp,
ttl_comments_nick.pic_uid as pic_uid
FROM
ttl_galleries_nick,
ttl_comments_nick
WHERE
ttl_galleries_nick.uid = '$pic_uid'
LIMIT 1 ");
if($sec["logged"])
{
if($user[13] == "admin" || $user[13] == "mod")
{
if($row = mysql_fetch_array($getinfos))
{
$user_id = $row["user_id"];
$stamp = $row["stamp"];
$pic_uid = $row["pic_uid"];
$pic = $user_id."_".$stamp;
$pic2 = "./galeriepics/".$user_id."_".$stamp.".jpg";
unlink($pic2);
$del_pic = mysql_query(" DELETE FROM ttl_galleries_nick
WHERE ttl_galleries_nick.pic = '" . $pic . "'
LIMIT 1 ") or die(mysql_error());
$getinfo = mysql_query("SELECT COUNT(*) FROM ttl_comments_nick WHERE ttl_comments_nick.pic_uid = '$pic_uid'");
$noc = mysql_fetch_row($getinfo);
echo $noc[0];
$del_comments = mysql_query(" DELETE FROM ttl_comments_nick
WHERE ttl_comments_nick.pic_uid = '" . $pic_uid . "'
LIMIT $noc[0] ") or die(mysql_error());
if($del_pic & $del_comments)
{
echo "<tr><td align=center class=text_C30000><br><b>Gelöscht!</b><br><br></td></tr>";
}
else
{
echo "<tr><td align=center class=text_C30000><br><b>Fehler beim löschen!</b><br><br></td></tr>";
}
}
}
else
{
echo "<tr><td align=center class=text_C30000><br><b>Fehler!</b><br><br></td></tr>";
}
}
else
{
?>
<tr><td align=center><span class="text_C30000"><b>Du hast nicht die erforderlichen Rechte, um auf diesen Bereich zugreifen zu können.</b></span></td></tr>
<?
}
include($ttl_root . "includes/bottom_box.php");
?>
wie schon gesagt noc[0] geht genau so wenig wie 'noc[0]'
lg manuel
yo,
wie schon gesagt noc[0] geht genau so wenig wie 'noc[0]'
zum einen fehlt uns die info, welche fehlermeldung es gibt. zum anderen ist es immer besser, die gesamte query in einer variablen zu speichern und mal mit echo auszugeben.
Ilja
so wie der code da steht kommt gar keine fehlermeldung!
$noc[0]
hat zwar den richtigen wert löscht die daten aber nicht!
yo,
so wie der code da steht kommt gar keine fehlermeldung!
die fehlermeldung kommt auch nicht automatisch, sondern kann man sich anzeigen lassen mit echo mysql_error().
hat zwar den richtigen wert löscht die daten aber nicht!
es geht nicht um $noc[], sondern um die ausgabe mit echo der ---> gesamten <-- query. ;-)
Ilja
ich weiß net wieso aber auf einmal gehts! :-) *G*
mfg manuel
yo,
ich weiß net wieso aber auf einmal gehts! :-) *G*
spotanheilungen sind in der medizin und im IT bereich erst recht wenig erforscht, sollen aber immer wieder vorkommen. letztlich stecken dahinter immer ursachen, vielleicht in deinem falle ein fehlenden leerzeichen ..... ?
Ilja
kA, habe nur or die(mysql_error()) hinzugefügt und auf einmal gings! :-)
lg manuel
hi,
zitat Ilja:
gib doch mal die query mit echo aus.
antwort Manuel:
[vollkommen sinnfreies posten des kompletten codes]
gruß,
wahsaga