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

    Problema Inserimento campi in database

    Salve ragazzi...sto cercando di realizzare uno script che mi visualizzi il nickname del profilo che visita un altro utente provvisto di data e ora della visita...
    il nickname di chi visita me lo ricavo tramite
    _SESSION
    mentre il nick di chi si va a visitare tramite _GET

    Questo lo script

    Codice PHP:
    <?      
    //Apro la sessione e...      
    session_start();      
     
      
     
    //verifico se esiste la variabile destinatario per il voto
    if(isset($_GET['nickname']) OR $_GET['nickname'] != ""){
    $destinatario=$_GET['nickname'];
    }
       
    $nickdichivisita=$_SESSION['nickname'];
    $nicknamevisitato=$_GET['nickname'];


    //parte relativa alla data e all ora delle visite ricevute da utenti
    $date3 date("Y/m/s H");


    //data ultima visita
    $ultimavisita3=strftime("%A %d %B %Y");
    //ora ultima  visita
    $ultimavisitaora3=strftime("%T");

    //valore che assegno al campo letto relativo al nick di chi visita
    $letto='1';

    //seleziono le visite e controllo se l utente che visita abbia nel campo letto il valore 1...se si aggiorni cioè fai un update altrimenti invece
    //se il campo letto e vuoto inserisci i dati

    //mi connetto al datase    
    $link mysql_connect("$db_host""$db_database""$db_username""$db_password") or die("Errore connessione: "mysql_error());
    $query1 = @mysql_query("SELECT id,nickvisitato1,nickdichivisita1,letto
    FROM visiteutenti WHERE nickvisitato1='
    $nicknamevisitato' AND nickdichivisita1='$nicknamevisitato'",$link);

    while(
    $row=mysql_fetch_array($query1)){
        
         
    $nickdichivisita=$row['nickdichivisita1'];
         
    $nickvisitato=$row['nickvisitato1'];
    $haivisitato=$row['letto'];


    }
    if(
    $nickdichivisita=$haivisitato){

       
    $query "UPDATE `visiteutenti` SET `nickdichivisita1` = '$nickdichivisita'";
       
    $query2 "UPDATE `visiteutenti` SET `nickvisitato` = '$nickvisitato1'";
       
    $query3 "UPDATE `visiteutenti` SET `letto` = '1'";
       
    $query4 "UPDATE `visiteutenti` SET `datadellavisita` = '$ultimavisita3'";
    $query5 "UPDATE `oradellavisita` SET `datadellavisita` = '$ultimavisitaora3'";
      
    $query6 "UPDATE `oradellavisita` SET `data3` = '$date'";  
      
      
    }   else{

    //Se quell utente non ha ancora visitato quell utente Invio i dati al database
    $query2 = @mysql_query("INSERT INTO visiteutenti VALUES ('$id','$nickdichivisita','$nickvisitato'
    ,'
    $letto','$ultimavisita3','$nickvisitato','$ultimavisitaora3','$date3')",$link);


    }
    Succede però che nel database non mi inserisce nulla..come mai??

  2. #2
    if($nickdichivisita=$haivisitato){

    questa riga con un solo = fa un'assegnazione e non esegue un confronto.

    E poi ... tutti quegli update senza eseguire manco una query ???


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

  3. #3
    Originariamente inviato da piero.mac
    if($nickdichivisita=$haivisitato){

    questa riga con un solo = fa un'assegnazione e non esegue un confronto.

    E poi ... tutti quegli update senza eseguire manco una query ???

    Su quello script non ci capivo piu' nulla..ne sto facendo un altro...

    Codice PHP:
    <?      
    //Apro la sessione e...      
    session_start();      

      
    //verifico se esiste la variabile destinatario per il voto
    if(isset($_GET['nickname']) OR $_GET['nickname'] != ""){
    $destinatario=$_GET['nickname'];
    }
       
    $nickdichivisita=$_SESSION['nickname'];
    $nicknamevisitato=$_GET['nickname']; 
    //parte relativa alla data e all ora delle visite ricevute da utenti

    setlocale(LC_TIME'it_IT');

    $date3 date("Y/m/s H");


    //data ultima visita
    $ultimavisita3=strftime("%A %d %B %Y");
    //ora ultima  visita
    $ultimavisitaora3=strftime("%T");

    //valore che assegno al campo letto relativo al nick di chi visita
    $letto='1';

    //mi connetto al database 
    $link mysql_connect("$db_host""$db_database""$db_username""$db_password") or die("Errore connessione: "mysql_error()); 
    //seleziono la tabella 
    mysql_select_db('my_italiawebchat') or die("Errore apertura database: " mysql_error()); 

    $strsql="INSERT INTO visiteutenti (id,nickdichivisita1,nickvisitato1,letto,datadellavisita,oradellavisita,data3)


    VALUES ('','
    $nickdichivisita','$destinatario','1','$ultimavisita3','$ultimavisitaora3',NOW())"
     
     
    mysql_query("$strsql",$link) or die("Errore query database: " mysql_error());
    Fino a qui funziona tutto...ora dovrei fare in modo che se un utente rivisita quell utente
    eseguire un aggiornamento dei campi..
    Per come e strutturatro lo script ora ad ogni visita aggiunge delle nuove righe..invece io vorrei che aggiornasse non che aggiungesse..
    Come potrei proseguire lo script per far ciò?

  4. #4
    Ho fatto cosi'
    Codice PHP:
    <?      
    //Apro la sessione e...      
    session_start();      

      
    //verifico se esiste la variabile destinatario per il voto
    if(isset($_GET['nickname']) OR $_GET['nickname'] != ""){
    $destinatario=$_GET['nickname'];
    }
       
    $nickdichivisita=$_SESSION['nickname'];
    $nicknamevisitato=$_GET['nickname'];


    //parte relativa alla data e all ora delle visite ricevute da utenti 

    //mi connetto al database 
    $link mysql_connect("$db_host""$db_database""$db_username""$db_password") or die("Errore connessione: "mysql_error());    
    //seleziono il database    
    mysql_select_db('my_italiawebchat') or die("Errore apertura database: " mysql_error());    
    //seleziono i campi da visualizzare per singolo utente 
    $strsql="SELECT id,nickdichivisita1,nickvisitato1,letto,datadellavisita,oradellavisita,data3 FROM visiteutenti 

    WHERE nickvisitato1='
    $destinatario

    "
    ;  

    $rs=@mysql_query("$strsql",$link) or die("Errore query database: " mysql_error());   
    //faccio un ciclo while    
    while ($riga mysql_fetch_array($rs)) {    
    $str_nickdichivisita $riga['nickdichivisita1'];    
    $str_datadellavisita $riga['datadellavisita'];   
    $str_oradellavisita $riga['oradellavisita'];    
    $haivisitato=$riga['letto'];

    }if(
    $str_nickdichivisita =$haivisitato)

    $queryaggiorna mysql_query("UPDATE visiteutenti SET  nickdichivisita1 = '$nickdichivisita' , nickvisitato1 = '$destinatario', letto = '1', datadellavisita = '$ultimavisita3'

    , oradellavisita = '
    $ultimavisitaora3', data3 = NOW()

    WHERE nickvisitato1='
    $destinatario'"); 

     else{
     
    $strsql="INSERT INTO visiteutenti (id,nickdichivisita1,nickvisitato1,letto,datadellavisita,oradellavisita,data3)


    VALUES ('','
    $nickdichivisita','$destinatario','1','$ultimavisita3','$ultimavisitaora3',NOW())"
     
     
    mysql_query("$strsql",$link) or die("Errore query database: " mysql_error());
     
    }
    Però non funziona...

    Succede che se per esempio...
    io utente carlitos visito l utente nicola....va ad aggiornare nel campo "nickdichivisita" il nick presente con il mio..cioè carlitos..invece di creare una nuova riga

    Faccio un esempio visivo di ciò che succede...nella tabella per esempio
    ci sonoq uesti dati...

    id----- Nickdichivisita----- nickvisitato------ letto
    5------ paolo--------------- nicola-----------1--

    se io ora utente carlitos visito nicola invece di crearmi una nuova riga succede che mi aggiorna la riga cosi'...

    id-----Nickdichivisita-----nickvisitato-----letto
    5 ----- carlitos------------ nicola -------- 1

    come si nota dal campo visitato sparisce il nick paolo e viene sostituito con il nick carlitos..

  5. #5
    Utente di HTML.it L'avatar di nicola75ss
    Registrato dal
    Nov 2004
    Messaggi
    12,923
    Mi salta all'occhio

    if($str_nickdichivisita =$haivisitato)

    il confronto lo devi fare con ==, altrimenti fai un'assegnazione.

    edit. Ti aveva già risposto Piero. Chiedo scusa. Mi sto appena svegliando.

  6. #6
    $link = mysql_connect("$db_host", "$db_database", "$db_username", "$db_password")

    anche qui... non mi risulta che mysql_connect permetta la scelta del database. Lo si puo' fare con mysqli_connect ma non in quell'ordine.

    meglio poi se utilizzi il tag "vero", quello esteso del php cioe': <?php

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

  7. #7
    Ciao..

    Codice PHP:
    <?php      
    //Apro la sessione e...      
    session_start();      

      
    //verifico se esiste la variabile nickname per il voto
    if(isset($_GET['nickname']) OR $_GET['nickname'] != ""){
    $nicknamevisitato=$_GET['nickname'];
    }
       
    $nickdichivisita=$_SESSION['nickname'];



    //parte relativa alla data e all ora delle visite ricevute da utenti

    //mi connetto al database
    $link mysql_connect("$db_host""$db_database""$db_username""$db_password") or die("Errore connessione: "mysql_error());    
    //seleziono il database    
    mysql_select_db('my_italiawebchat') or die("Errore apertura database: " mysql_error());    
    //seleziono i campi da visualizzare per singolo utente
    $strsql="SELECT id,nickdichivisita1,nickvisitato1,letto,datadellavisita,oradellavisita,data3 FROM visiteutenti

    WHERE nickvisitato1='
    $nicknamevisitato'

    "
    ;  

    $rs=@mysql_query("$strsql",$link) or die("Errore query database: " mysql_error());   
    //faccio un ciclo while    
    while ($riga mysql_fetch_array($rs)) {    
    $str_nickdichivisita $riga['nickdichivisita1'];    
    $str_datadellavisita $riga['datadellavisita'];   
    $str_oradellavisita $riga['oradellavisita'];    
    $haivisitato=$riga['letto'];

    }if(
    $str_nickdichivisita =$haivisitato)

    $queryaggiorna mysql_query("UPDATE visiteutenti SET  nickdichivisita1 = '$nickdichivisita' , nickvisitato1 = '$destinatario', letto = '1', datadellavisita = '$ultimavisita3'

    , oradellavisita = '
    $ultimavisitaora3', data3 = NOW()

    WHERE nickvisitato1='
    $nicknamevisitato');

    else{
    $strsql="INSERT INTO visiteutenti (id,nickdichivisita1,nickvisitato1,letto,datadellavisita,oradellavisita,data3)


    VALUES ('','$nickdichivisita','$destinatario','1','$ultimavisita3','$ultimavisitaora3',NOW())";


    mysql_query("
    $strsql",$link) or die("Errore query database" . mysql_error());

    }  ?>

    Facendo cosi'...

    if($str_nickdichivisita ==$haivisitato)
    succede che invece di aggiornare la riga me ne crea un altra ....

  8. #8
    Originariamente inviato da carlitosteam
    Facendo cosi'...

    if($str_nickdichivisita ==$haivisitato)
    succede che invece di aggiornare la riga me ne crea un altra ....
    significa che $str_nickdichivisita e' diverso da $haivisitato e l'if riceve un false e passa ad eseguire l'else.

    Ma sei sicuro di quello che stai facendo? compari il contenuto del campo "letto" con quello del campo "nickvisitato1". Stampa le variabili per rendirti conto di quello che fai.

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

  9. #9
    ho risolto facendo cosi'

    Codice PHP:

    $strsql
    ="SELECT id,nickdichivisita1,nickvisitato1,letto,datadellavisita,oradellavisita,data3 FROM visiteutenti 

    WHERE nickvisitato1='
    $nicknamevisitato' AND nickdichivisita1 = '$mionick' LIMIT 1";  
     
    if(
    mysql_num_rows(mysql_query($strsql)) == 0)
    {
    // Inserisci nuova riga   (quindi insert)
    }
    else
    {
    // altrimenti aggiorna   (quindi update)


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