php.de

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

 
 
LinkBack Themen-Optionen Thema bewerten
Alt 22.02.2005, 01:36  
Gast
 
Beiträge: n/a
Standard String wird nicht übergeben

Hallo!
Ich hab mal wieder ein Problem.
Und zwar habe ich eine PHp-Seite mit folgendem Inhalt:

Code:
<?php
echo "

<table width='100%' border='0'>";
echo "<form name='post' method='post'>";

    $result = mysql_query("SELECT * FROM comments ORDER BY ".$Sortierung." DESC LIMIT ".$Eintrag.",".$KommentareProSeite."");
    while ($myrowbereich = mysql_fetch_array($result)) {

  $thumbnail = eregi_replace("\[", "_thb_[", $myrowbereich["id"]);
echo "  <tr>";
echo "    <td><a href=partybildkommentar_delete.php?ID=".$myrowbereich["IDX"]."&Eintrag=".$Eintrag."&Sortierung=".$Sortierung."><img src=http://www.jh-woerthsee.de/Admin/Images/delete.jpg border=0></a>";
echo "<input type='checkbox' name='DEL[".$myrowbereich["IDX"]."]' value='checkbox'></td>";
echo "    <td>".$myrowbereich["forfatter"]."</td>";
echo "    <td>".$myrowbereich["comment"]."</td>";
echo "    <td>".$myrowbereich["date"]."</td>";
echo "    <td><a href=http://www.djtouch.de/jhw/PartyBilder/Gallery/".$myrowbereich["id"]."><img src=http://www.djtouch.de/jhw/PartyBilder/Gallery/".$thumbnail." height='50'></a></td>";
echo "  </tr>";

}
echo "</table>";

//Wenn Submitted wird
if ($_POST[submit]) { 
	$delFelder = "";
    $result = mysql_query("SELECT * FROM comments ORDER BY ".$Sortierung." DESC LIMIT ".$Eintrag.",".$KommentareProSeite."");
    while ($myrowbereich = mysql_fetch_array($result)) {
		if(isset($_POST[$myrowbereich["IDX"]]))
		{
			$delFelder = "".$delFelder."".$myrowbereich["IDX"]."";
			$delFelder = "".$delFelder." AND ";
		}
	}
	$delFelder = substr($delFelder, 0, -5);  // löscht das letzte " AND "
	echo $delFelder;


		$sql = "DELETE FROM comments WHERE IDX='".$delFelder."'";
		if (mysql_query($sql)) { 
		echo $sql;
		    echo "Kommentare gelöscht...";
		     } else { 
			    echo("

Fehler beim Löschen der Kommentare: " . 
			    mysql_error() . "</P>"); 
	}





}
echo "<input type='submit' name='submit' value='Löschen'>";
?>
Wenn ich submit gedrückt habe gibt er mir folgendes aus:
Zitat:
DELETE FROM comments WHERE IDX=''Kommentare gelöscht...
Wie daraus ersichtlich ist, ist der Befehl nicht komplett und deswegen werden auch keine Datensätze gelöscht. Warum?
lasse ich den Bereich nach 'echo $delFelder;' weg, zeigt er mir alles richtig an (z.B.: 769 AND 787 AND 834)!

Wäre super, wenn mir da jemand weiterhelfen könnte!

gn8
DJTouch
 
Sponsor Mitteilung
PHP Code Flüsterer

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

Alt 22.02.2005, 07:33  
Erfahrener Benutzer
 
Registriert seit: 09.09.2004
Beiträge: 716
PHP-Kenntnisse:
Anfänger
Kort zeigte ein beschämendes Verhalten in der Vergangenheit
Standard

Probieren Sie dieses Meister
$sql = 'DELETE FROM comments WHERE IDX="' .$delFelder. '"';
(doppeltes Anführungszeichen, einfaches, Punkt, Punkt, einfaches, doppeltes, einfaches - sieht man nich so gut )

und hier:
PHP-Code:
<?php
      
if (mysql_query($sql)) { 
      echo 
$sql
          echo 
"[b]Kommentare gelöscht...[/b]"
           } else { 
             echo(
"

Fehler beim Löschen der Kommentare: " 

             
mysql_error() . "</P>"); 
   } 

// Schreibst du besser:

        
$res mysql_query($sql) or die(mysql_error() . '
$sql);
        echo 
"[b]Kommentare gelöscht...[/b]"
   } 


?>
Kort ist offline  
Alt 22.02.2005, 10:59  
Erfahrener Benutzer
 
Registriert seit: 18.09.2003
Beiträge: 13.598
PHP-Kenntnisse:
Fortgeschritten
imported_Ben ist zur Zeit noch ein unbeschriebenes Blatt
Standard

@kort:
Kleine Verbesserung:
PHP-Code:
<?php 
      
if (mysql_query($sql)) { 
      echo 
$sql
          echo 
"[b]Kommentare gelöscht...[/b]"
           } else { 
             echo(
"

Fehler beim Löschen der Kommentare: " 

             
mysql_error() . "</P>"); 
   } 

// Schreibst du besser: 

        
$res mysql_query($sql) or die(mysql_error() . '
<pre>' 
$sql '</pre>'); 
        echo 
"[b]Kommentare gelöscht...[/b]"
   } 


?>
Dann ist sogar noch etwas Fomatierung drin
imported_Ben ist offline  
Alt 22.02.2005, 11:56  
Erfahrener Benutzer
 
Benutzerbild von lazydog
 
Registriert seit: 02.04.2008
Beiträge: 4.032
lazydog befindet sich auf einem aufstrebenden Ast
Standard

Du kannst nicht auf diese Art mit mehreren Werten vergeichen (.. WHERE feld = x AND y AND z). Entweder du vergeichst das Feld mit jedem Wert (... WHERE feld = x OR feld = y OR feld = z), oder du benutzst den IN OPerator (.. WHERE feld IN (x, y, z). Hier ein Fragment deines Codes mit der zweiten Möglichkeit:
PHP-Code:
<?php
/Wenn Submitted wird
if ($_POST[submit]) {
   
$delFelder '';
   
$result mysql_query("SELECT IDX
             FROM comments
             ORDER BY $Sortierung DESC
             LIMIT $Eintrag, $KommentareProSeite"
)
       or die(
mysql_error());
   while (
$myrowbereich mysql_fetch_array($result)) {
      if(isset(
$_POST[$myrowbereich["IDX"]])) {
         
$delFelder .= $myrowbereich["IDX"];
      }
   }
   echo 
$delFelder;

   
$sql "DELETE FROM comments
           WHERE IDX IN ($delFelder);
   if (mysql_query($sql)) {
      echo $sql;
      echo "
[b]Kommentare gelöscht...[/b]";
   }
   else {
       echo("

Fehler beim Löschen der Kommentare" .
       mysql_error() . "
</P>");
   }
}
?>[/php]
__________________
Gruss
L
lazydog ist offline  
Alt 22.02.2005, 15:26  
Gast
 
Beiträge: n/a
Standard

Hi!
Vielen Dank für eure Hilfe! Leider funktioniert es immernoch nicht.
Ich hab jetzt folgenden Code:

PHP-Code:
<?php
//Wenn Submitted wird
if ($_POST[submit]) { 
   
$delFelder ''; -
   
$result mysql_query("SELECT IDX FROM comments ORDER BY ".$Sortierung." DESC LIMIT ".$Eintrag.", ".$KommentareProSeite.""
       or die(
mysql_error()); 
   while (
$myrowbereich mysql_fetch_array($result)) { 
      if(isset(
$_POST[$myrowbereich["IDX"]])) { 
         
$delFelder .= $myrowbereich["IDX"]; 
      } 

}

   
$sql "DELETE FROM comments WHERE IDX IN (".$delFelder.")"
   if (
mysql_query($sql)) { 
      echo 
$sql
      echo 
"[b]Kommentare gelöscht...[/b]"
   } 
   else { 
       echo(
"

Fehler beim Löschen der Kommentare: " 

       
mysql_error() . "
SQL-Befehl: "
.$sql."
Text in delFelder: "
.$delFelder."
Text in myrowbereich: "
.$myrowbereich["IDX"]."</P>"); 
   } 

?>


<input type='submit' name='submit' value='Löschen'>
Er spuckt mir folgendes aus:
Code:
Fehler beim Löschen der Kommentare: You have an error in your SQL syntax near ')' at line 1
SQL-Befehl: DELETE FROM comments WHERE IDX IN ()
Text in delFelder: 
Text in myrowbereich:
Demnach sind beide Variablen leer, wenn submitted wird.

Was tun?

Mfg,
DJTouch
 
Alt 23.02.2005, 09:49  
Erfahrener Benutzer
 
Benutzerbild von lazydog
 
Registriert seit: 02.04.2008
Beiträge: 4.032
lazydog befindet sich auf einem aufstrebenden Ast
Standard

Offensichtlich werden Variablen nicht übermittelt. Wenn ich den ersten Teil deines Codes anschaue, so werden auch keine solchen übergeben. Der Name wäre etwas mit DEL[], und irgendwas aus der DB. Was du aber sonst in diesem Teil erreichen willst, verstehe ich nicht. Was soll z.B. das Ersetzen von "[" in der (hoffentlich) nummerischen ID? Schau doch einfach mal, was für Daten du bekommst, und setze das echo $sql vor mysql_query()
PHP-Code:
<?php
//Wenn Submitted wird
if ($_POST[submit]) { 
   echo 
"<pre>";
   
var_dump($_POST);
   echo 
"</pre>";
....
?>
__________________
Gruss
L
lazydog ist offline  
Alt 23.02.2005, 13:37  
Gast
 
Beiträge: n/a
Standard

PHP-Code:
<?php
  $thumbnail 
eregi_replace("\[""_thb_["$myrowbereich["id"]); 
?>
Ich benutze ein Comment-Addon für die die SPGM-Gallery (kennt vielleicht jemand). Und dieses AddOn speichert den Pfad der Bilder in "ID", deswegen ersetze ich da etwas herum... Die EIGENTLICHE ID heisst bei mir "IDX" und ist numerisch.


Ich hab es jetzt auch hinbekommen mit folgendem Quellcode (falls es jemanden interessiert). Vielen Dank an alle (vor allem lazydog).

PHP-Code:
<?php
echo "

<table width='100%' border='0'>"
;
echo 
"<form name='post' method='post'>";

    
$result mysql_query("SELECT * FROM comments ORDER BY ".$Sortierung." DESC LIMIT ".$Eintrag.",".$KommentareProSeite."");
    while (
$myrowbereich mysql_fetch_array($result)) {

  
$thumbnail eregi_replace("\[""_thb_["$myrowbereich["id"]);
echo 
"  <tr>";
echo 
"    <td><a href=partybildkommentar_delete.php?ID=".$myrowbereich["IDX"]."&Eintrag=".$Eintrag."&Sortierung=".$Sortierung."><img src=http://www.jh-woerthsee.de/Admin/Images/delete.jpg border=0></a>";
echo 
"<input type='checkbox' name='".$myrowbereich["IDX"]."' value='checkbox'></td>";
echo 
"    <td>".$myrowbereich["forfatter"]."</td>";
echo 
"    <td>".$myrowbereich["comment"]."</td>";
echo 
"    <td>".$myrowbereich["date"]."</td>";
echo 
"    <td><a href=http://www.djtouch.de/jhw/PartyBilder/Gallery/".$myrowbereich["id"]."><img src=http://www.djtouch.de/jhw/PartyBilder/Gallery/".$thumbnail." height='50'></a></td>";
echo 
"  </tr>";

}
echo 
"</table>";



//Wenn Submitted wird
if ($_POST[submit]) { 
   
$delFelder ''; -
   
$result mysql_query("SELECT IDX FROM comments ORDER BY ".$Sortierung." DESC LIMIT ".$Eintrag.", ".$KommentareProSeite.""
       or die(
mysql_error()); 
   while (
$myrowbereich mysql_fetch_array($result)) { 
      if(isset(
$_POST[$myrowbereich["IDX"]])) { 
         
$delFelder .= $myrowbereich["IDX"]; 
     
$delFelder "".$delFelder.",";
      } 

}
    
$delFelder substr($delFelder0, -1);  // löscht das letzte ","
   
$sql "DELETE FROM comments WHERE IDX IN (".$delFelder.")"
   if (
mysql_query($sql)) { 
      echo 
$sql
      echo 
"[b]Kommentare gelöscht...[/b]"
   } 
   else { 
       echo(
"

Fehler beim Löschen der Kommentare: " 

       
mysql_error() . "
SQL-Befehl: "
.$sql."
Text in delFelder: "
.$delFelder."
Text in myrowbereich: "
.$myrowbereich["IDX"]."</P>"); 
   } 

?>



<input type='submit' name='submit' value='Löschen'>
Mfg,
DJTouch
 
 


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
Event abfangen Ambience JavaScript, Ajax und mehr 4 30.08.2007 14:36
String auslesen Shaira PHP Tipps 2006 11 01.12.2006 17:52
Prüfen ob Zahl in String vorhanden ist PHP Tipps 2005-2 9 07.09.2005 11:32
Alle Felder nach String durchsuchen Jacks Rache Datenbanken 6 08.08.2005 09:46
In allen Spalten nach String suchen Jacks Rache Datenbanken 0 05.08.2005 20:15
In allen Tabellen nach String suchen Jacks Rache Datenbanken 0 05.08.2005 11:18
String in allen Spalten suchen Jacks Rache Datenbanken 0 05.08.2005 09:43
Alle Spalten nach String durchsuchen Jacks Rache Datenbanken 0 05.08.2005 09:41
string -> int, nur wenn string zahl ist PHP Tipps 2005-2 3 06.06.2005 12:33
where string von einer funktion zu anderen transportieren PHP Tipps 2005 5 03.03.2005 16:29
php code als string umwandeln PHP Tipps 2005 8 23.02.2005 18:03
String auf bestimmte Breite (Pixel) kuerzen... mudo PHP-Fortgeschrittene 25 28.01.2005 19:07
String suchen und tauschen PHP Tipps 2005 13 08.01.2005 22:00
[Erledigt] String mit Leerzeichen auffüllen HTML, Usability und Barrierefreiheit 2 27.10.2004 18:47
bekomme string nicht in mysql-tabelle PHP Tipps 2004 6 26.07.2004 11:35

Besucher kamen über folgende Suchanfragen bei Google auf diese Seite
php id idx

Alle Zeitangaben in WEZ +2. Es ist jetzt 09:07 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.