Manuel: LIMIT $x spuckt eine fehlermeldung aus!

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...

  1. 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

    --
    "Look, that's why there's rules, understand? So that you _think_ before you break 'em."
    1. 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

      1. 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

        1. <?

          // 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");

          ?>

          1. wie schon gesagt noc[0] geht genau so wenig wie 'noc[0]'

            lg manuel

            1. 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

              1. so wie der code da steht kommt gar keine fehlermeldung!

                $noc[0]

                hat zwar den richtigen wert löscht die daten aber nicht!

                1. 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

                  1. ich weiß net wieso aber auf einmal gehts! :-) *G*

                    mfg manuel

                    1. 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

                      1. kA, habe nur or die(mysql_error()) hinzugefügt und auf einmal gings! :-)

                        lg manuel

          2. hi,

            zitat Ilja:

            gib doch mal die query mit echo aus.

            antwort Manuel:
            [vollkommen sinnfreies posten des kompletten codes]

            gruß,
            wahsaga

            --
            "Look, that's why there's rules, understand? So that you _think_ before you break 'em."