Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 12

Discussione: Ciclo If

  1. #1
    Utente di HTML.it
    Registrato dal
    Nov 2004
    Messaggi
    1,627

    Ciclo If

    ciao a tutti,
    ho un dubbio con un ciclo if:

    qualcuno riescie a spiegarmi come funziona questa condizione?

    if ($record) {


    graciess

  2. #2
    se $record esiste o è vera restituisce la condizione che gli dai.

    Codice PHP:
    $record=true;
    if (
    $record) {
    echo
    "E' vera";
    }
    else{
    echo
    "E' falsa";


  3. #3
    ... ma soprattutto "if" non è un ciclo poichè esegue al più una sola istruzione :-)

    (si parla di ciclo quando si eseguono più di una istruzione)
    www.valarsoft.com (Free GNU/GPL softwares and games)

  4. #4
    Utente di HTML.it
    Registrato dal
    Nov 2004
    Messaggi
    1,627
    si scusa, intendevo dire condizione non ciclo, putroppo línserimento non avviene in maniera corretta in quanto la condizione serve per aggiornare i campi se gia presenti o inserirli posto il codice

    $query = "SELECT id, obj_id FROM tabella WHERE obj_id='".$id."'";
    $database->setQuery($query);
    $database->loadObject($record);
    if ($record) {

    $rid = $record->id;
    $query = "UPDATE tabella SET ";
    $first = true;
    foreach ($fields as $key=>$value) {
    if (!$first) {
    $query .= ",";
    } else {
    $first = false;
    }
    if (is_numeric($value)) {
    $query .= $key."=".$value;
    } else {
    $query .= $key."=".$database->Quote($value);
    }
    }
    $query .= " WHERE id=".$rid;

    $database->setQuery($query);
    $database->query($query);

    } else {


    $query = "INSERT INTO tabella (".implode(",",array_keys($fields)).") VALUES (";
    $first = true;
    foreach ($fields as $key=>$value) {
    if (!$first) {
    $query .= ",";
    } else {
    $first = false;
    }
    if (is_numeric($value)) {
    $query .= $value;
    } else {
    $query .= $database->Quote($value);
    }
    }
    $query .= ")";



    $database->setQuery($query);
    $database->query($query);



    $rid = $database->insertid();
    }

  5. #5
    Utente di HTML.it
    Registrato dal
    Nov 2008
    Messaggi
    539
    fai questa condizione

    if ($record) {

    ma $record non è stato impostato da nessuna parte; di conseguenza ti ritorna false (o errore)...

  6. #6
    Utente di HTML.it
    Registrato dal
    Nov 2004
    Messaggi
    1,627
    ma record e' stato impostato qui

    $query = "SELECT id, obj_id FROM tabella WHERE obj_id='".$id."'";
    $database->setQuery($query);
    $database->loadObject($record);


    quello che ho notato e' guardando il mio db (tramite phpmyadmin)

    mi trovo gli ID non in ordine d' inserimento o essendo autoincrement progressivo ma

    1,2,3,4,5,6,7,34,9,10,56.....ecc..ecc...

    l' insert che vado a fare dei nuovi prodotti non dovrebbe rispettare il vaore ID successivo? e poi come mai mi cancella dei record???


    e poi ad ogni import mi trovo la tabella con dei dati in eccesso

  7. #7
    l'auto increment deve funzionare così, se hai:

    1,2,3,4,5,6,7,8,9 e cancelli il record n° 9, il prossimo che inserirai sarà categorizzato al n° 10 proprio perchè è auto increment.

    Poi record non l'hai impostato, impostato è quando scrivi:

    $record=qualcosa allora l'if ti darà true se no darà esito negativo oppure la funzione record record(); dove alla fine di essa c'è un return true o false.

  8. #8
    Utente di HTML.it
    Registrato dal
    Nov 2004
    Messaggi
    1,627
    esatto il problema e' che in teoria non cancello nessun record quindi dovrei trovarli tutti in sequenza, e non
    mischiati.

    ma nel momento nel quale effettuo questa select

    $query = "SELECT id, obj_id FROM tabella WHERE obj_id='".$id."'";
    $database->setQuery($query);
    $database->loadObject($record);------------------> con questo inizializzo $record

    e poi faccio

    if ($record) {

    quindi se il record esiste faccio update altrimenti inserisco, non e' corretto?

  9. #9
    Utente di HTML.it
    Registrato dal
    Nov 2008
    Messaggi
    539
    allora, se il problema è solo l'ordinamento dei record la domanda è: che te ne importa?
    fai un ORDER BY nella query e il problema non si pone;
    per quanto riguarda if($record) che restituisce false, vuol dire che la query non ha trovato record...se fai un var_dump($record) dovrebbe darti NULL...oppure fai qualche var_dump e vediamo che esce, così capiamo perchè a $record non associa nulla...
    sempre che $record venga inizializzato come dici tu...

    $database->loadObject($record);------------------> con questo inizializzo $record

  10. #10
    Utente di HTML.it
    Registrato dal
    Nov 2004
    Messaggi
    1,627
    ho inserito
    if (isset($record)) {
    echo "Questa variabile è valorizzata ".$rid."-".$id2."-".$obj_id."
    " ;
    }


    il mio problema e'che utilizzo un'applicazione che lavora con il valore ID, purtoppo per questo "problema" ogni volta che vado a fare l'mport dei dati, cambiano gli ID dei record e quindi mi sfasa tutto

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.