Visualizzazione dei risultati da 1 a 5 su 5

Discussione: while database

  1. #1

    while database

    Ciao a tutti, ho un problema:
    Con questo codice

    $query = mysql_query("SELECT id FROM ordini") or die (mysql_error());
    while ($array = mysql_fetch_array($query)) {
    $riga_db = $array['id'];
    }

    io voglio ottenere delle variabili dell' id della tabella ordini che confrontate con una variabile inviata tramite form $_POST['id'] mi permetta di cancellare la riga da me scelta solo che in questo modo se faccio

    $riga = (isset($_POST['riga'])) ? $_POST['riga'] : NULL;
    if ($riga) {
    if ($riga == $riga_db) {
    mysql_query("DELETE FROM ordini WHERE id = '$riga' LIMIT 1") or die (mysql_error());
    echo "<p class=\"text_small\">L'ordine n. $riga &egrave; stato cancellato.</p>";
    }else{
    echo "<p class=\"text_small\">Il numero dell'ordine inserito non corrisponde a nessun ordine presente nel database.</p>";
    }
    }

    mi riconosce solo la prima riga della tabella perchè la variabile $riga_db si ferma solo alla prima riga?
    Come faccio ad assegnare una variabile ad ogni id della tabella?

  2. #2
    Utente di HTML.it
    Registrato dal
    Feb 2005
    Messaggi
    356
    scusami ma non ho capito bene cosa devi fare e non mi è chiaro cosa fai con questa istruzione

    $riga = (isset($_POST['riga'])) ? $_POST['riga'] : NULL;

    e come usi dopo $riga...
    Jekkil

  3. #3
    Il primo pezzo di codice e' totalmente inutile perche' scorre tutti i record della tua tabella e ad ogni ciclo assegna l'id alla variabile $riga_db sovrascrivendone il contenuto ogni volta. Ma un ciclo del genere, anche corretto, non servirebbe perche' per cancellare un record da una tabella e' sufficiente una query:
    codice:
    DELETE FROM ordini WHERE id = '$riga'
    il campo 'id' si suppone non contenga doppioni, quindi quel comando non e' ambiguo e cancella solo la riga richiesta (anche la clausola LIMIT in questo caso e' priva di senso).

    Se ti interessa verificare SE un record esisteva ed e' stato cancellato, usa mysql_affected_rows() dopo la query di cancellazione.

  4. #4
    si hai ragione, alla fine ho fatto cosi, anche se io volevo che il codice si fermasse e mi avvisasse nel momento in cui la var id inviata dal form non corrispondesse a quella nel database.
    Ovviamente adesso se nel form inserisco un id che non corrisponde a quello del database non sarà cancellata alcuna riga però non potrò visualizzare il messaggio che avevo creato e cioè : Il numero dell'ordine inserito non corrisponde a nessun ordine presente nel database.

  5. #5
    Originariamente inviato da yaroslavpopovic
    Ovviamente adesso se nel form inserisco un id che non corrisponde a quello del database non sarà cancellata alcuna riga però non potrò visualizzare il messaggio che avevo creato e cioè : Il numero dell'ordine inserito non corrisponde a nessun ordine presente nel database.
    Rileggi l'ultima riga del mio precedente messaggio.

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.