ICH RASTE GLEICH AUS (sorry)

Thorsten Strauss

Grünschnabel
Hi Leute ,
ich sitze seit längerem an folgendem Problem.
Ich will über ein link z.B. delete ein datensatz mit der ID xy aus der Datenbank löschen nur irgend etwas funktioniert hier nicht

PHP:
if ($_SESSION['user_status'] == "1"){
$item = $_GET['item'];
	if ($_Get['actio'] == "add"){
	$query = "UPDATE bilder SET aktiv = 't' WHERE id = '".$_GET['item']."'";
	$result = mysql_query($query);
	}
	
	if (isset($_Get['actio']) == "delete"){
		$query = "DELETE FROM bilder WHERE id = '".$_GET['item']."'";
	$result = mysql_query($query);
	}

?>



PHP:
 <? 
		  $counter = "1";
		  				$bild_query = "SELECT id, hits FROM bilder WHERE aktiv != 't' ORDER BY id "; 
				$bild_result = mysql_query($bild_query);
				while ($bild_data = mysql_fetch_array($bild_result)){
								$counter++;
					if ($counter == "2"){
						$counter = "0";
						echo "</tr>";
						echo "<tr>";
						}
				?>
              <td width="120" height="200" align="center" valign="middle"><a href="xxx.php"<? echo $bild_data['id']; ?>"><img src="/bilder/<? echo $bild_data['id']; ?>.jpg" border="0" /></a><br />
                <a href="xxx.php?actio=add&item=<? echo $bild_data['id']; ?>">adden</a> | <a href="xxx.php?actio=delete&item=<? echo $bild_data['id']; ?>">delete</a> </td>
              <?
			}
			?>

Was zum Hänker mache ich falsch :-(

cheers
 
Was zum Hänker mache ich falsch

Grundsätzlich würde ich dir erstmal raten, mysql_error() zu verwenden. Beispiel:

PHP:
mysql_query( $query ) or die( mysql_error() );

Die Fehlerbeschreibung "irgendwas funktioniert hier nicht" ist keineswegs hilfreich. Vielleicht beruhigst du dich erstmal, und beschreibst dann, was nicht funktioniert, welche Fehlermeldungen du siehst, etc.

Apropos Fehlermeldungen. Ich muss es leider immer wieder schreiben:

PHP:
/* Entwicklermodus: Muss in die ersten Zeilen des Scripts um möchlichst alle Fehler aufzuzeigen. */
error_reporting( E_ALL | E_STRICT );
ini_set('display_errors', 1);
 
Sorry, könntest Du genauer werden in der Aussage, irgendwas funktioniert nicht? Debuggen ist nicht so schwer. Wird die get-data nicht übergeben? Ist in der SQL-Anweisung ein Fehler, liegt es an der Session?

Bitte ein bisschen mehr Mühe, damit wir das Rad nicht neu erfinden müssen!

mfg chmee
 
Okay das Problem ist , er zeigt mir keinen Fehler an .
Aber wenn ich auf den "DELETE" - Link drücke passiert einfach nichts. Das Bild bleibt an seiner Position sowie in der Datenbank.
 
Könntest Du bitte mal den HTML-Seiten-Code posten? Wenn er gar nicht reagiert, wird wohl der <a href>-tag irgendwie falsch sein.

mfg chmee
 
Übrigens heißt es $_GET und nicht $_Get:

PHP:
    //    HIER
    if ($_Get['actio'] == "add"){
    $query = "UPDATE bilder SET aktiv = 't' WHERE id = '".$_GET['item']."'";
    $result = mysql_query($query);
    }
    //               UND HIER!
    if (isset($_Get['actio']) == "delete"){
        $query = "DELETE FROM bilder WHERE id = '".$_GET['item']."'";
    $result = mysql_query($query);
    }
 
Ok jetzt mal langsam habe vergessen das File auf den FTP zu ziehen.

so nun diese Meldungen:

Notice: Undefined index: item in ...../test.php on line 10
10: $item = $_GET['item'];

Aber diese habe ich doch damit bekannt gemacht. Oder ?
 
Die Zeile meckert, weil wenn am Link kein item-Parameter dran hängt, der in $_GET natürlich nicht vorhanden ist. Da du $item aber eh nicht verwendest, kannst du die Zeile auch raus löschen. Wenn du es verwenden willst solltest du es so abändern:

PHP:
$item = 0;
if(isset($_GET['item']))
  $item = $_GET['item'];
 
item: Da die diese Art von Fragen sehr oft kommt, habe ich mal ein Tutorial geschrieben wie man am besten auf Fehlersuche geht.
PHP MySQL Debug Queries
Geh es doch mal durch und falls du die Lösung nicht findest, poste mal das ausgegebe SQL-Statement ins Forum.

item: Zudem geh ich davon aus, dass id eine Nummer ist. Also solltest du sie im SQL auch wie eine Nummer behandeln und nicht wie ein String.

item: Nebenbei:
Ist egal ob du gleich ausrastest oder nicht. Dieser Titel verleitet mich eigentlich eher dazu hier nicht zu antworten. Die Board-Regeln gelten auch für dich.
Regeln fürs PHP Board - bitte komplett durchlesen! Punkt a)
a) Klare verständliche Betreffe

Gutes Beispiel:
Fehler: Header wurden bereits gesendet

Schlechtes Beispiel:
mannnnnnn, brauch hilfe

Netiquette für die Foren von tutorials.de Punkt 14
Erstelle aussagekräftige Betreff-Zeilen für Deine eigenen Beiträge. Mit nicht aussagekräftigen Betreff-Zeilen wie z.B. "Hilfe, komme nicht weiter" oder "Photoshop braucht Hilfe!" belegst Du nur, dass Du die Netiquette unseres Forums nicht gelesen oder verstanden hast, oder es Dir an der notwendigen Reife für ein solches Informationsmedium fehlt. Beiträge mit mangelhaften Betreff-Zeilen werden ohne Vorwarnung gelöscht und der Account (ggf. erst bei einer Wiederholungstat) unbefristet gesperrt.
 
Zurück