Visualizzazione dei risultati da 1 a 6 su 6
  1. #1
    Utente di HTML.it
    Registrato dal
    May 2009
    Messaggi
    55

    [PHP-MySQL] Non cancella record

    Salve ragazzi...
    Per sfizio stavo provando a ricreare una piccola bacheca con l'utilizzo del solo PHP e MySQL..

    Riesco a scrivere nel database (invio messaggio in bacheca) e a visualizzare i post (lettura record su database) ma, non so se è la stanchezza o cosa..Per quanto riguarda la cancellazione di un post, questo mi risulta stranamente difficile

    Vi mostro i codici della pagina php che visualizza l'utente e quella con la classe per lavorare sul database relativi alla cancellazione..


    Pagina principale:
    codice:
    $message=$connect->leggi_bacheca($name[4]);
    						if($message!=null)
    						{
    						$i=0;
    							
    							while($row=mysql_fetch_assoc($message))
    							{
    							$array_idmsg[i]=$row['id_msg'];
    							echo $row['user']." - ".$row['quando']." ";
    						
    							echo "<form method=\"post\" action=\"mha2.php\" action=\"mail\" method=\"invia\">";
    							echo "<input type=\"image\" name=\"deleta\" src=\"img/canc.png\" value=\"".$array_idmsg[i]."\" />";
    							echo "</form>";						
    						 
    							echo "
    ".$row['testo']."
    ";
    							echo "________________________________________________________________
    ";
    							
    							$i++;
    							}
    						}
    						else
    						{
    							echo "Nessun messaggio scritto..cominciamo?
    ";
    						}
    					
    				?>	
    
    [...]
    [...]
    [...]
    [...]
    [...]
    <?php
    if($_POST['deleta']!="")
    {
    	echo $_POST['deleta'];
    	$connect->cancella_bacheca($_POST['deleta']);
    	$_SERVER['PHP_SELF'];
    }
    ?>

    PHP con classe
    codice:
    	public function cancella_bacheca($idmsg)
    	{
    		if(isset($this->attiva))
    		{
    			
    			$istruzione="DELETE FROM commenti WHERE id_msg='".$idmsg."' LIMIT 1";
    			$query=mysql_qyery($istruzione) or die (mysql_error());
    			
    		}
    		else
    		{
    		return false;
    		}
    	}
    credo sia inutile postare altro visto che l'unico errore arriva solo nel cancellare i messaggi..
    Tutti i messaggi vengono visualizzati e viene visualizzata anche l'immagine con la X che avrebbe lo scopo di cancellare il messaggio a cui è associata...

    Ho provato a fare diverse modifiche ma nessuna mi da il risultato sperato..
    Alla fine ho provato quella di usare un array dove immagazinare l'id del messaggio da cancellare e l'ultima struttura di controllo a fine pagina..
    Ma niente...ricarica la pagina ma sul database non ci lavora proprio..ho pensato ci fossero errori nella query ma no, è scritta bene...
    Forse sta nel fatto che ad ogni input, con l'uso dell'array, non viene passato nulla e quindi non cancella nulla?
    Neanche, perchè collegandomi ad una pagina diversa dove c'è l'echo di $_POST, invece di ricollegarsi a se stessa (mha2.php), mi stampa proprio l'id_msg relativo al messaggio che voglio cancellare...

    Allora mi chiedo..perchè solo la cancellazione non me la fa? ._.
    Può essere che sia un problema relativo ai tipi di dato?
    Cioè che quello passato via PHP non viene visto dal database come un INTEGER ma come VARCHAR?

    Chiedo scusa nel caso in cui risultassi poco chiaro ma sono diverse ore che lavoro su questa cosa e sono estremamente stanco e ora che non ce la faccio più mi si è presentato sto problema

    Grazie e auguri

  2. #2
    Utente di HTML.it
    Registrato dal
    May 2009
    Messaggi
    55
    Mi sa che il mio dubbio era giusto...ho usato un var_dump sul dato inviato con post e mi dice che è una stringa -.-

    Chiedo scusa se mi sono risposto da solo

    A questo punto provo a fare delle piccole modifiche e vi faccio sapere...mal che vada il post potrà essere utile in futuro per qualcuno che si troverà ad avere il mio stesso dubbio

  3. #3
    Utente di HTML.it
    Registrato dal
    May 2009
    Messaggi
    55
    No neanche con il cast si risolve il problema...nessuno sa il perchè?

  4. #4
    ciao, potrei dire anche una stupidagine

    originale
    $istruzione="DELETE FROM commenti WHERE id_msg='".$idmsg."' LIMIT 1";

    modificato
    $istruzione="DELETE FROM commenti WHERE id_msg='$idmsg' LIMIT 1";

    io la varibile l'ho sempre scritta senza concatenamento e e doppio apice...
    annunci gratuiti: www.centroannunci.com
    realizzazione siti web: www.sitocenter.com

  5. #5
    Originariamente inviato da sitocenter
    ciao, potrei dire anche una stupidagine

    originale
    $istruzione="DELETE FROM commenti WHERE id_msg='".$idmsg."' LIMIT 1";

    modificato
    $istruzione="DELETE FROM commenti WHERE id_msg='$idmsg' LIMIT 1";

    io la varibile l'ho sempre scritta senza concatenamento e e doppio apice...
    Quelle due righe sono la stessa cosa. Quello che non mi convince troppo e' la riga dopo:

    $query=mysql_qyery($istruzione) or die (mysql_error());

    Malloc, sei certo di questo "nuovo" comando??

    Il silenzio è spesso la cosa migliore. Pensa ... è gratis.

  6. #6
    Utente di HTML.it
    Registrato dal
    May 2009
    Messaggi
    55


    qyery invece di query

    l'avevo detto che ero stanco
    A questo punto credo che il problema sia proprio quello (insieme all'assenza del cast, senza mi darebbe sicuramente un errore di incompatibilità)..
    Ora non ho il db e i file davanti..domattina proverò e vi farò sapere..

    Grazie e scusate per la cecità

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.