Pagina 1 di 3 1 2 3 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 24
  1. #1
    Utente di HTML.it L'avatar di bANART
    Registrato dal
    Jul 2005
    Messaggi
    662

    Eseguire funzione da link.

    (premetto sempre che sono novizio e che mi affascina il mondo del PHP ma mi fa anche venire un gran mal di teste... e se voglio imparare qualcosa devo romperVi le scatole!)

    Come si fa a richiamare una funzione con un link?

    Ad esempio... io ho fatto questo scarabocchio (sicuramente zeppo di errori ma per uno che entra ora in php non dovrebbe essere male no (galvanizzatemi un pò vi prego!))



    codice:
    	<form name="chartform" method="post" action="">
    		<label>Nome:
    			<input name="nome" type="text" />
    		</label>
    		
    
    		<label>Cognome:
    			<input name="cognome" type="text" />
    		</label>
    		
    
    		<input name="aggiungi" type="submit" value="Aggiungi" />
    	</form>
    	
    	<?php
    	
    	if($_POST){
    		addplayer();
    	}
    	
    	function addplayer()
    	{
    		
    		require 'dbconnect/config.php';
    		require 'dbconnect/connect.php';
    		
    		$nome = $_POST['nome'];
    		$cognome = $_POST['cognome']; 
    
    		$query="INSERT INTO chart(nome,cognome,punti) VALUES ('$nome','$cognome','0')";
    		
    		$result = mysql_query($query);
    		
    		if (!$result) {  
    		die("Errore nella query $query: " . mysql_error());  
    		}  
    
    		mysql_close();  
    
    	}
    	
    	?>	
    	
    	<?php
    	
    		require 'dbconnect/config.php';
    		require 'dbconnect/connect.php';
    				
    		
    		echo 'Giocatori
    ';
    		$player = mysql_query("SELECT id, nome, cognome, punti FROM chart ");  
    			while ($row = mysql_fetch_row($player)) {  
    			    echo '<div style="width:30px;height:20px;float:left;">',
    				$row[0] ,
    				'</div><div style="width:100px;height:20px;float:left;">',
    				$row[1]	,
    				'</div><div style="width:100px;height:20px;float:left;">',
    				$row[2],
    				'</div><div style="width:30px;height:20px;float:left;">',
    				$row[3],
    				'</div><div style="height:20px;float:left;">',
    				'<input name="score" type="text" size="2" maxlength="3" />',
    				'</div>
    ';  
    			}  
    	?>

    Ora.. io so che per eliminare un record il codice dovrebbe essere tipo questo:

    codice:
    $query = "DELETE FROM chart WHERE id IN ($ids)";  
     $result = mysql_query($query);  
     if (!$result) {  
    		        die("Errore nella query $query: " . mysql_error());  
    		    }
    Ma come si fa ad 'agganciare' questa funzione in un link?
    Matteo Coletta - fotografia
    Fotografo Lanciano - Fotografia a Lanciano e Pescara

  2. #2
    Utente di HTML.it L'avatar di brodik
    Registrato dal
    Jan 2009
    Messaggi
    765
    il link potresti farlo così..

    codice:
    <a href="index.php?do=delete&id=1">Cancellami</c>

    Codice PHP:
    if($_GET['do'] == "delete" && !empty($_GET['id'])){
    $id intval($_GET['id']);
    deleteplayer($id);

    poi crei la funzione per la cancellazione...

    Codice PHP:
    function deleteplayer($id){
              
    $result mysql_query("DELETE FROM chart WHERE id = $id");  
              if (!
    $result) {  
                   die(
    "Errore nella query $query: " mysql_error());  
              }  


  3. #3
    Utente di HTML.it L'avatar di bANART
    Registrato dal
    Jul 2005
    Messaggi
    662
    Uff.... non funziona...

    Ho modificato il codice come mi avevi detto, ma non va...

    Riporto di seguito il codice completo:

    Codice PHP:

        <form name="chartform" method="post" action="">
            <label>Nome:
                <input name="nome" type="text" />
            </label>
            

            <label>Cognome:
                <input name="cognome" type="text" />
            </label>
            

            <input name="aggiungi" type="submit" value="Aggiungi" />
        </form>
        
        <?php
        
        
    if($_POST){
            
    addplayer();
        }
        
        function 
    addplayer()
        {
            
            require 
    'dbconnect/config.php';
            require 
    'dbconnect/connect.php';
            
            
    $nome $_POST['nome'];
            
    $cognome $_POST['cognome']; 

            
    $query="INSERT INTO chart(nome,cognome,punti) VALUES ('$nome','$cognome','0')";
            
            
    $result mysql_query($query);
            
            if (!
    $result) {  
            die(
    "Errore nella query $query: " mysql_error());  
            }  

            
    mysql_close();  

        }
        
        
    ?>    
        
        <?php
        
            
    require 'dbconnect/config.php';
            require 
    'dbconnect/connect.php';
            
            
            echo 
    'Giocatori
    '
    ;
            
    $player mysql_query("SELECT id, nome, cognome, punti FROM chart ");  
                while (
    $row mysql_fetch_row($player)) {  
                    echo 
    '<div style="width:30px;height:20px;float:left;">',
                    
    $row[0] ,
                    
    '</div><div style="width:100px;height:20px;float:left;">',
                    
    $row[1]    ,
                    
    '</div><div style="width:100px;height:20px;float:left;">',
                    
    $row[2],
                    
    '</div><div style="width:30px;height:20px;float:left;">',
                    
    $row[3],
                    
    '</div><div style="height:20px;float:left;">',
                    
    '<input name="score" type="text" size="2" maxlength="3" />',
                    
    '</div>
    '

                    echo 
    '[url="index.php?do=delete&id=1"]Cancellami[/url]';
                }  
                
                if(
    $_GET['do'] == "delete" && !empty($_GET['id'])){ 
                    
    $id intval($_GET['id']); 
                    
    deleteplayer($id); 
                    }
                
                function 
    deleteplayer($id){ 
                    
    $result mysql_query("DELETE FROM chart WHERE id = $id");   
                    if (!
    $result) {   
                       die(
    "Errore nella query $query: " mysql_error());   
                    }   
    }
                        
    ?>
    Matteo Coletta - fotografia
    Fotografo Lanciano - Fotografia a Lanciano e Pescara

  4. #4
    Utente di HTML.it
    Registrato dal
    Mar 2009
    Messaggi
    110
    Ti viene restituito qualche errore per caso?

  5. #5
    Utente di HTML.it L'avatar di bANART
    Registrato dal
    Jul 2005
    Messaggi
    662
    non trova la pagina!

    Firefox: Not Found

    IE7: Impossibile trovare la pagina:

    Chrome: Spiacenti! Questo link non sembra essere funzionante.
    Matteo Coletta - fotografia
    Fotografo Lanciano - Fotografia a Lanciano e Pescara

  6. #6
    Utente di HTML.it L'avatar di brodik
    Registrato dal
    Jan 2009
    Messaggi
    765
    ma la pagina dove risiede lo script almeno è index.php?

  7. #7
    Utente di HTML.it L'avatar di bANART
    Registrato dal
    Jul 2005
    Messaggi
    662
    Di essere scemo sono scemo...
    Infatti la pagina si chiama insert.php

    Ora l'ho modificato correttamente, il problema però è che ho cliccato su "cancellami" dell'id 25 e mi ha cancellato l'id n° 1!

    Sarà per caso che è perchè nel link c'è id=1?
    Matteo Coletta - fotografia
    Fotografo Lanciano - Fotografia a Lanciano e Pescara

  8. #8
    Utente di HTML.it L'avatar di brodik
    Registrato dal
    Jan 2009
    Messaggi
    765
    certo... ovviamente al posto di 1 devi mettere una variabile con l'id che ti interessa...


    echo 'Cancellami';

  9. #9
    Utente di HTML.it L'avatar di bANART
    Registrato dal
    Jul 2005
    Messaggi
    662
    Ho fatto così e funziona:


    Codice PHP:
        <form name="chartform" method="post" action="">
            <label>Nome:
                <input name="nome" type="text" />
            </label>
            

            <label>Cognome:
                <input name="cognome" type="text" />
            </label>
            

            <input name="aggiungi" type="submit" value="Aggiungi" />
        </form>
        
        <?php
        
        
    if($_POST){
            
    addplayer();
        }
        
        function 
    addplayer()
        {
            
            require 
    'dbconnect/config.php';
            require 
    'dbconnect/connect.php';
            
            
    $nome $_POST['nome'];
            
    $cognome $_POST['cognome']; 

            
    $query="INSERT INTO chart(nome,cognome,punti) VALUES ('$nome','$cognome','0')";
            
            
    $result mysql_query($query);
            
            if (!
    $result) {  
            die(
    "Errore nella query $query: " mysql_error());  
            }  

            
    mysql_close();  

        }
        
        
    ?>    
        
        <?php
        
            
    require 'dbconnect/config.php';
            require 
    'dbconnect/connect.php';
            
            
            echo 
    'Giocatori
    '
    ;
            
    $player mysql_query("SELECT id, nome, cognome, punti FROM chart ");  
                while (
    $row mysql_fetch_row($player)) {  
                    echo 
    '<div style="height:30px;"><div style="width:30px;height:20px;float:left;">',
                    
    $row[0] ,
                    
    '</div><div style="width:100px;height:20px;float:left;">',
                    
    $row[1]    ,
                    
    '</div><div style="width:100px;height:20px;float:left;">',
                    
    $row[2],
                    
    '</div><div style="width:30px;height:20px;float:left;">',
                    
    $row[3],
                    
    '</div><div style="height:20px;float:left;">',
                    
    '<input name="score" type="text" size="2" maxlength="3" />',
                    
    '</div>',
                    
    '[url="insert.php?do=delete&id=',$row[0],'"]Cancellami[/url]',
                    
    '</div>';
                }  
                

                
                if(
    $_GET['do'] == "delete" && !empty($_GET['id'])){ 
                    
    $id intval($_GET['id']); 
                    
    deleteplayer($id); 
                    }
                    
                function 
    deleteplayer($id){ 
                    
    $result mysql_query("DELETE FROM chart WHERE id = $id");   
                    if (!
    $result) {   
                       die(
    "Errore nella query $query: " mysql_error());   
                    }   
                

    }
                        
    ?>
    Il problema è che, si, il record lo cancella, ma resta comunque visualizzato nella pagina finchè non viene fatto un refresh...

    Non ci sarebbe il modo di far sparire il record dalla lista non appena si preme cancella (oltre che dal database)?
    Matteo Coletta - fotografia
    Fotografo Lanciano - Fotografia a Lanciano e Pescara

  10. #10
    Utente di HTML.it L'avatar di brodik
    Registrato dal
    Jan 2009
    Messaggi
    765
    prova a spostare
    Codice PHP:
                if($_GET['do'] == "delete" && !empty($_GET['id'])){
                    
    $id intval($_GET['id']);
                    
    deleteplayer($id);
                    } 
    dopo i require

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.