Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 13
  1. #1

    Count a 1 con tabella vuota

    Ciao ragazzi...
    credo che questo if mi stia prendendo in giro... non riesco a capire il motivo facci esattamente il contrario di quanto dico io...
    in pratica dovrebbe funzionare così: per ogni utente, ricava la lingua del browser, controlla nel db se esiste già quella stringa, e, se si, ricava il codice IDLingua, in caso contrario inserisce una nuova lingua con un nuovo IDLingua...

    tutto questo controllando se nella tabella esiste già una lingua uguale, ma andando a guarda reil count A TABELLA VUOTA (!!!) mi da come risultato 1... non riesco a capire il miotivo...

    il codice è il seguente:
    Codice PHP:
    //Controlla se il browser restituisce la lingua
    if(isset($_SERVER['HTTP_ACCEPT_LANGUAGE'])){
            
    $lingua=$_SERVER['HTTP_ACCEPT_LANGUAGE'];

        
    //Faccio un select sulla corrispondenza Lingua=$lingua
        
    $querylingua="SELECT * FROM lingua WHERE Lingua='$lingua'";
        
    $resultlingua=mysql_query($querylingua)or die(mysql_error());

            
    //Controllo che il risultato di count($resultlingua) sia diverso da "0" zero
            //Se diverso da zero nel db c'è già questa lingua
            
    if(count($resultlingua)<>0){
            
    $count=count($resultlingua);
            print(
    "1 - $count"); //qui count mi da sempre 1... e a volte pure 2 :-)
            
    $row=mysql_fetch_array($resultlingua);
            
    $codlingua=$row['IDLingua'];
            print(
    "$codlingua");
        }else{
            
    //Se uguale a zero, ndl db non esiste questa lingua e creo un nuovo record che la contiene
            
    print("2");
            
    $insertnewlingua="INSERT INTO lingua(Lingua) VALUES('$lingua')";
            
    $resultnewlingua=mysql_query($insertnewlingua)or die(mysql_error());
            
    $codlingua=mysql_insert_id();
                    print(
    "$codlingua");
        }

    }else{
        print(
    "nolingua");


    può essere un errore facendo il count($resultlingua) ???


    grazie!

  2. #2
    ciao raga...
    ho auto risolto il mio problema... è un vecchio errore che faccio sempre...
    al posto di
    Codice PHP:
    if(count($resultlingua)<>0){ 
    devo mettere
    Codice PHP:
    if(mysql_num_rows($resultlingua)<>0){ 

    grazie comunque...

    ciao! e alla prossima... (tanto ritorno a chiedere :-))

  3. #3
    Utente di HTML.it
    Registrato dal
    Aug 2002
    Messaggi
    8,013
    meglio ancora
    codice:
    if ($var != 0) {
      ...
    <´¯)(¯`¤._)(¯`»ANDREA«´¯)(_.¤´¯)(¯`>
    "The answer to your question is: welcome to tomorrow"

  4. #4
    sai... ho avuto diversi problemi con questo = ma tutte le volte che lo voglio utilizzare mi fa lavorare non poco...


    cmq... grazie per la segnlazione... ci provo ma non garantisco il suo uso... :-)

  5. #5
    Utente di HTML.it L'avatar di luca200
    Registrato dal
    Apr 2002
    Messaggi
    4,120
    Sei completamente fuori strada.
    mysql_num_rows() su quella query ti darà sempre 1.
    Codice PHP:
    $resultlingua=mysql_query($querylingua)or die(mysql_error()); 
    $riga mysql_fetch_row($resultlingua);
    if (
    $riga[0]) != 0)........... 

  6. #6
    hum...luca... il tuo funziona (a parte una parentesi in più :-) ma mi devi spiegare il motivo della tua affermazione sul mio script... da me funziona...

    magari è oppure ma... funziona...

  7. #7
    Utente di HTML.it L'avatar di luca200
    Registrato dal
    Apr 2002
    Messaggi
    4,120
    Argh.
    Scusa, ho detto una stronzata. Ero convinto che facessi una SELECT COUNT(*).
    Non usare il mio codice, è completamente fuori strada

  8. #8
    ho appena modificato tutte le pagine con il codice che mi hai dato... e ora mi tocca ritoccarlo ancora... ti invio la fattura a fine mese... :-)

    'scoltami... spiegami comunque il codice... e le differenze che c'erano con il mio... se lo fai magari ti faccio lo sconto :-)

  9. #9

  10. #10
    Utente di HTML.it L'avatar di luca200
    Registrato dal
    Apr 2002
    Messaggi
    4,120
    Originariamente inviato da srg
    ho appena modificato tutte le pagine con il codice che mi hai dato... e ora mi tocca ritoccarlo ancora... ti invio la fattura a fine mese... :-)

    'scoltami... spiegami comunque il codice... e le differenze che c'erano con il mio... se lo fai magari ti faccio lo sconto :-)
    Beh in 7 minuti hai fatto le modifiche, testate e ripostato qui. Non erano tante le pagine dai

    Come ti ho detto, mi ero convinto che avessi fatto una SELECT COUNT(*).
    In quel caso, il mio codice leggeva la riga risultato per ottenere il numero di righe trovate.
    Sì, il tuo va bene. Anche se, in termini teorici, probabilmente nell'altro modo è un po' più efficiente. Ma non vale la pena stare a cambiarlo, ormai.
    O meglio: se non hai ancora fatto le modifiche all'indietro, cambia la query in "SELECT count(*) FROM lingua WHERE Lingua='$lingua'", e lascia il mio codice. Se invece hai già ripristinato il tuo codice, lascialo così.


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.