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

    Problema Query SQL con PHP

    Buon pomeriggio, sto costruendo un sito con una votazione tra 2 voto e ho un grosso problema quando faccio il comando update.

    Mi spiego meglio: prendo 2 foto a caso dal mio db (uso phpmyadmin su piattaforma di altervista) e cliccando su una passo alla stessa pagina l'id della foto e il suo contatore attuale, poi nella pagina prendo con il get i valori di questi due parametri, incremento di uno il contatore e procedo con l'update con sql. Il problema che i parametri passati sono giusti ma nel db, una volta riaggiornato, il contatore della foto scelta ritorna a 1 (indistintamente dal valore precedente)

    Posto il codice di quanto scritto sopra

    Codice PHP:
    if ((!isset($_GET['voto']))and (!isset($_GET['c']))) 
    {
     ?> 
    <center> <table valign='top' style=';margin-left:25px' align='center'>
    <tr> <td hight='400px' valign='top' align='center'>
    <a href='index.php?voto=<?php echo $id1?>&c=<?php echo $cont1?>'>
    [img]foto/<?php echo $foto1?>[/img]</a> </td>
     <td hight='400px' valign='top' align='center'>
    <a href='index.php?voto=<?php echo $id2?>&c=<?php echo $cont2?>'>
    [img]foto/<?php echo $foto2?>[/img]</a> 
    </td> </tr> 
    <tr> <td align='center'>
    <?php echo $nome1?> </td> <td align='center'><?php echo $nome2?></td>
     </tr> </table> 
    </center> 
    <?php 
    } else { 
    $id=$_GET['voto'];
     
    $c=$_GET['c'];
     
    $cont=(int)$c;
     
    $cont =$cont 1;
     echo 
    $cont;
     echo 
    "
    "
    ;
     echo 
    $id
    $sql_update" UPDATE foto SET count=$cont WHERE id_foto=$id"
    $query_update1 mysql_query($sql_update$db) or die("errore nella composizione della query4"); ?>
    Dove $id1 e 2 e $count1 e 2 sono le variabili in cui sono contenuti rispettivamente gli id delle foto e i loro attuali contatori. Ho aggiunto anche un echo dei dati che ho preso con il GET per un controllo aggiuntivo a video.

    Nel db la variabile count è un int(11).

    Non so proprio cosa possa causare questo errore! Grazie in anticipo per la risposta!

  2. #2
    Molto probabilmente è un errore del server visto che in locale va (usando anche lo stesso DBMS) o sono proprio io che non vedo un errore banale? Ci sto sbattendo la testa da 4 ore e inizio a vedere doppio... mi serve un aiutino

  3. #3
    Quando ho problemi di questo tipo cambio il type del campo nel database con un bel varchar.
    Ad ogni modo mi sembra che sia tutto ordinato. Potresti provare a togliere 'int' e ad aggiungere uno in un altro modo:
    Codice PHP:
    <?php  
    } else {  
    $id=$_GET['voto']; 
     
    $c=$_GET['c']; 
     
    $cont=$c
     
    $cont++; 
     echo 
    $cont
     echo 
    "
    "

     echo 
    $id;  
    $sql_update" UPDATE foto SET count=".$cont." WHERE id_foto=".$id;  
    $query_update1 mysql_query($sql_update) or die("errore nella composizione della query4"); ?>
    Ho tolto anche $db dalla query. Se ti sei già collegato al database è inutile (di solito ci si collega subito insieme alla connessione al server mysql).
    Magari si risolve..
    Ce l'ho fatta! - ItalianPixel -

  4. #4
    Ma il contatore che funzione ha ? Come lo usa?

  5. #5
    Credo per tenere il conteggio dei voti tra due foto (tipo facemash ai tempi).
    Ce l'ho fatta! - ItalianPixel -

  6. #6
    Ok, appena torno a casa provo a modificare il codice e testo se va, ora non riesco perché sono in università.

    Ma il contatore che funzione ha ? Come lo usa?

    Credo per tenere il conteggio dei voti tra due foto (tipo facemash ai tempi).
    Si lo uso per stilare una classifica delle foto e quindi mi serve memorizzare il contatore su db per ogni foto.


    Quando ho problemi di questo tipo cambio il type del campo nel database con un bel varchar.
    In che senso modificare il contatore con una varchar? Perché dovrei metterlo come carattere se è un contatore e quindi un int?
    Perché in fase di lettura dovrei ogni volta riconvertirlo in int e poi incrementarlo, per la scrittura non è un porblema visto che basta aggiungere gli apici alla query.

    Grazie per la risposta!

  7. #7
    I numeri sono numeri, che tu li metta come int che come varchar (anche se è più corretto trattarli come int).
    Ad ogni modo se hai 1 come varchar e dici di aumentarlo di 1 lo fa senza problemi e non devi riconvertire nulla.
    Ce l'ho fatta! - ItalianPixel -

  8. #8
    Sono riuscito a collegarmi al sito tramite ftp dall'università e ho fatto le modifiche che mi hai consigliato... non è cambiato niente da lo stesso identico problema...

  9. #9
    ma il contatore e l'id sono giusti nelle echo prima dell'update?
    Ce l'ho fatta! - ItalianPixel -

  10. #10
    Originariamente inviato da portapipe
    I numeri sono numeri, che tu li metta come int che come varchar (anche se è più corretto trattarli come int).
    Ad ogni modo se hai 1 come varchar e dici di aumentarlo di 1 lo fa senza problemi e non devi riconvertire nulla.
    ma quale varchar e varchar...è un numero e int va mantenuto anche nel db
    IP-PBX management: http://www.easypbx.it

    Old account: 2126 messages
    Oldest account: 3559 messages

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.