Eliminare dati da db mysql con php

  • Creatore Discussione Creatore Discussione vodka
  • Data di inizio Data di inizio

vodka

Utente Attivo
25 Giu 2010
128
0
0
Come faccio ad eliminare dei dati da un db mysql utilizzando php?
Mi spiego cosa devo fare..
Devo eliminare una riga di un db nel caso la password inserita nel form html corrisponde a quella del db, in caso affermativo eliminare la riga in cui la password coincide.
Vi posto la parte html.
HTML:
	<form method="post" action="revocaman.php">
	<div id="" class="">
		Inserisci la tua password
	</div>
	<input type="password" name="passw"><br><br>
	<div id="" class="">
		Conferma la tua password
	</div>
	<input type="password" name="passw1"><br><br>
	<input type="submit" value="Elimina" name="revoca">
	</form>

questa la parte php

PHP:
	<?php
	if (isset($_POST['revoca']))
	{
		if ($_POST['passw']==$_POST['passw1'])
		{
			$passw=$_POST['passw'];
			include 'configauto.php';
			$query= "SELECT * FROM manutenzione ";
			$result = mysql_query($query) or die (mysql_error());
			while ($row=mysql_fetch_assoc($result))
			{
				$passw1=trim($row['password']);
				if (strcmp($passw, $passw1)==0)
				{
					$query1="DELETE FROM 'manutenzione' WHERE password=$passw";
					$query_results = mysql_query($query) or die("&error=1"); 	
					echo '<script langage=\"Javascript\">alert("Revoca avvenuta con successo!");</script>';
				}

			}
			if ( strcmp($pass, $pass1)!=0)
			{
				echo '<script langage=\"Javascript\">alert("Password errata o Prenotazione manutenzione non ancora effettuata!");</script>';

			}
			
		}
		else
		{
					ob_start();
					echo '<script langage=\"Javascript\">alert("Le password non coincidono, fare attenzione nella scrittura!");</script>';
					header( "Refresh:0.1; url=assistenza.php" );
					ob_end_flush();
		}
	}
?>

Così facendo non mi elimina i dati anche se mi dà il messaggio revoca avvenuta...Come posso risolvere?
 
Ultima modifica:
Hai sbagliato il nome della variabile contenente il codice SQL per la cancellazione. Modifica questa riga:
PHP:
$query_results = mysql_query($query) or die("&error=1");
Così:
PHP:
$query_results = mysql_query($query1) or die("&error=1");
Ora dovrebbe funzionare :)
 
non funziona ancora...mi dà questo l'errore :
You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ''manutenzione' WHERE password=rocco' at line 1
 
Perché MySQL ha alcune keyword che non possono essere usate come nomi di campi. Quindi le alternative sono due: o si cambia nome al campo o si aggiungono gli apici nelle query. Tempo fa mi è capitato di creare una tabella con un campo group, e non capivo perché accidenti tutte le query SQL restituivano un errore su quel campo. Poi ho scoperto che GROUP è una di queste keyword.
 
ciao
da un certo punto di vista hai ragione, ma (almeno io) penso che l'errore sia dovuto ad una certa "sudditanza" agli anglofoni.
se uno scrive come mangia cioe gupppo al posto di group certi errori si evitano.
io sono fermamente sostenitore (ove si può) usare l'italiano.

p.s.
proprio in questi giorni (visitando aihme) un ospedale ho visto un'indicazione
day surgeyy =>
traduzione: dagli al surgelato
 
quindi in caso di errori si può provare a mettere gli apici storti...ma come si fanno questi apici?
 
@borgo Chiamare campi, tabelle, variabili e compagnia bella con nomi italiani si può fare se sei l'unico ad accedere al software. Quando inizi a sviluppare applicazioni Open Source e chiunque può leggerne i sorgenti diventa odioso per gli stranieri tradurre tutti i nomi. È come se i nomi delle tabelle e delle variabili di WordPress fossero in tedesco... capiresti qualcosa se volessi modificare il codice?

@micio86 Ormai nessuno usa più le SQL injection per manipolare i dati di un sito, perché è una vulnerabilità vecchia e qualunque programmatore con un minimo di cervello prende precauzioni. Peraltro, con le nuove librerie, non è neanche più necessario eseguire l'escape di ogni singolo dato: PDO aggiunge automaticamente gli apici nei dati delle prepared statements, e PHP, con il safe mode abilitato, effettua l'escape degli input (GET e POST).
 

Discussioni simili