Visualizzazione dei risultati da 1 a 7 su 7

Discussione: [MySql] Query MAX(id)

  1. #1

    [MySql] Query MAX(id)

    Ciao belli ho un problemino

    con questa select:

    <?php
    $query = "SELECT MAX( id_pcgames )
    FROM `pcgames` ";
    connectmysqlif ($db_host, $db_user, $db_password, $db_name, $query);
    while ($row = mysql_fetch_array($result)){
    print("$row[id_pcgames]");
    }
    ?>

    Non mi da' il valore di id_pcgames

    la query e' inserita in un campo hidden di un form, e sono andato a vedere il codice sorgente e il value del campo e': ""

    la select funziona perfettamente con phpmyadmin,
    quindi mi sorge il dubbio che chiamando un max id
    il nome assegnato all' array row[] sia differente,
    pero' non so' come lo chiama....consigli?

    p.s: so' che non serve il while , in quanto il campo e' solo uno.

    il mio primo sito
    www.promofit.it
    e di strada da fare ne ho ancora parecchia!!!

  2. #2
    usa gli alias

    SELECT MAX( id_pcgames ) as massimo........



    print $row['massimo'];

    poi guarda gli ' che ho messo, nel tuo modo se error_reporting è E_ALL ti restituisce errore

    ciauz

  3. #3
    Grazie mille non ci avevo pensato

    pero' se metto gli apici come dici tu in
    $row[id_pcgames]
    mi da un errore:
    Parse error: parse error, unexpected T_ENCAPSED_AND_WHITESPACE, expecting T_STRING or T_VARIABLE or T_NUM_STRING in

    credo perche' non e' una stringa , ma un intero

    il mio primo sito
    www.promofit.it
    e di strada da fare ne ho ancora parecchia!!!

  4. #4
    se lo usi in questo modo
    print("$row['id_pcgames']");
    da errore perché il php blocca la risoluzione della variabile a $row

    devi scrivere

    print("{$row['id_pcgames']}");

    in questi casi però è più veloce (di un niente)
    echo $row['id_pcgames'];

    molti in questo forum si sono adattati ad usare sempre le {}
    quando la variabile è tra ""

    questo per rendere il codice + leggibile e valido con tutti i settaggi di php

    infatti come ti ho detto
    $row[id_pcgames] è scorretto perchè php si aspetta che id_pcgames sia una costante, anche se in quasi tutti i server le impostazioni "elastiche" non segnalano niente

    come direbbe chris in questi casi non abilitare MAI error_reporting = E_ALL o tutti i tuoi script di daranno un'infinità di notice


    oltretutti E_ALL è l'impostazione più corretta in fase di sviluppo, evita molte situazioni che potrebbero rivelarsi spiacevoli e difficili da risolvere in seguito

  5. #5
    che dire sei stato convincente
    adottero' il metodo da te descritto
    e ora vado a settare l'error_reporting (sperando di trovarlo....dovrebbe essere nel php.ini.....)

    Grazie mille per tutto

    il mio primo sito
    www.promofit.it
    e di strada da fare ne ho ancora parecchia!!!

  6. #6
    se ti rompe modificare sempre il php.ini puoi mettere la funzione
    http://php.it/manual/it/function.error-reporting.php
    nel file di configurazione che includi in tutti gli script

    poi quando lo sviluppo è finito commenti la righa, ricorda che per evitare tutti i notice devi anche utilizzare soltanto variabili settate altrimenti restituisce errore quindi fai buon uso di isset()

    per esempio se devi controllare se $i == 5
    if(isset($i) and $i == 5)
    al contrario
    if($i == 5) restituisce un notice se $i non è settata, questo evita errori non previsti, infatti se $i non è settata lo script funziona come se $i fosse 0 ma evidentemente se c'è un bug che non valorizza $i nelle righe precedenti, al contrario se $i può essere non settata devi gestire questa situazione.
    Per continuare l'esempio precedente se $i può essere non settata dovresti fare così o in altri mille modi a seconda della situazione

    $i = isset($i)?$i:0;
    if($i == 5){

    in questo modo hai gestito tutti i casi


  7. #7
    Mitico, stavo giusto strippando per questo motivo

    grazie mille

    Scusa se ho risposto cosi' tardi, ma lavoro, e il tempo a mia disposizione e' davvero poco, a settembre dovrei essere piu'
    disponibile....... e poi sta arrivando il nuovo sitarello

    cosi' mi dici anche se ti piace

    ciao
    il mio primo sito
    www.promofit.it
    e di strada da fare ne ho ancora parecchia!!!

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.