Visualizzazione dei risultati da 1 a 3 su 3
  1. #1

    Redirect in base all'esito della query

    Ciao,
    sto combattendo con questo problema da qualche giorno senza venirne a capo.
    Mi spiego: il codice sotto riportato, dovrebbe permettere di eseguire il redirect ad una pagina php se l'utente viene trovato (la query restitruisce un valore), oppure se la query non restituisce valori, deve eseguire il redirect sulla pagina utente_nonTrovato.php.
    Sto provando con isset, empty, if_null, ma non c'è verso di farlo funzionare.

    Codice PHP:
    <?php
    $val1
    =$_POST['val1'];
    $val2=$_POST['val2'];


    $result=mysql_query("
    INSERT INTO vh_amici (val1, val2, val3, val4)  
    SELECT '
    $val1', '$val2', 'R', NOW() FROM login 
    WHERE  EXISTS (SELECT campo as val2 FROM login WHERE campo='
    $val2') 
    limit 1
    "

    or die(
    "errore. dati non inseriti. codice errore:  ".mysql_error());

    $result TRUE;

    if (isset(
    $result)) {
        
    header("location: utente_trovato.php"); 
    }

    else {
        
    header("location: utente_nonTrovato.php");
    }

    mysql_close($link);
    ?>
    Il risultato è che esegue sempre il redirect sulla stessa pagina non ostante la query restituisca o non restituisca un valore.

    Come posso risolvere?

    Grazie

  2. #2
    Moderatore di PHP L'avatar di Alhazred
    Registrato dal
    Oct 2003
    Messaggi
    12,509
    Certo
    if (isset($result))

    dice solo se la variabile $result esiste e stando al tuo codice esiste sempre, inoltre qualunque sia il risultato della query, poi tu gli assegni il valore TRUE, il che rende tutto inutile.

    Togli
    $result = TRUE;

    e al posto di
    if (isset($result))

    metti
    if (mysql_affected_rows() == 1)

    P.S.: usa mysqli_ oppure PDO invece di mysql_ queste ultime funzioni sono deprecate e sui server più aggiornati non funzionano più.

  3. #3
    Quote Originariamente inviata da Alhazred Visualizza il messaggio
    Certo
    if (isset($result))

    dice solo se la variabile $result esiste e stando al tuo codice esiste sempre, inoltre qualunque sia il risultato della query, poi tu gli assegni il valore TRUE, il che rende tutto inutile.

    Togli
    $result = TRUE;

    e al posto di
    if (isset($result))

    metti
    if (mysql_affected_rows() == 1)

    P.S.: usa mysqli_ oppure PDO invece di mysql_ queste ultime funzioni sono deprecate e sui server più aggiornati non funzionano più.

    Ottimo, ti ringrazio, funziona alla grande

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 © 2026 vBulletin Solutions, Inc. All rights reserved.