Valutazione 4.87/ 5 (100.00%) 5838 voti

Condividi:        

Cancellazione righe MySQL

Problemi di HTML? Di PHP, ASP, .NET, JSP, Perl, SQL, JavaScript, Visual Basic..?
Vuoi realizzare programmi in C, C++, Java, Ruby o Smalltalk, e non sai da che parte cominciare?
Entra qui e troverai le risposte!

Moderatori: Triumph Of Steel, archimede

Cancellazione righe MySQL

Postdi Zhuco » 08/07/05 16:55

Ho un altro problemino...
Alquanto strano (e quando mai :roll: :roll: :roll: )...
Devo eliminare determinate righe da un db Mysql tramite php...
Il problema è il seguente se faccio eseguire la query tramite php in questo modo:

Codice: Seleziona tutto
<?php
    include 'gest/datauserdb.inc';
    include 'gest/errorreport.inc';
    include 'gest/host.inc';
    session_start(void);
    $id = session_id();
    $_con = mysql_connect($_server_db, $_user_db, $_password_db) or die (errorreport("Connection Failed From TEST - MySQL Error: ".mysql_error(), "404"));
    mysql_select_db ('test', $_con) or die (errorreport("Connection Failed For Selection Table Test From TEST - MySQL Error: ".mysql_error(), "404"));
    $query = "DELETE FROM test WHERE id=\"".$id."\"";
    mysql_close();
    unset($_SESSION["test"]);
    header("Location: ".$host."test.php");
?>

Non funziona ma se la faccio eseguire tramite prompt sql funziona...
Allo stesso modo funziona anche utilizzando MySQL Control Center.
Come mai???
Thanks From .:°J@zZ°:.
Zhuco
Utente Senior
 
Post: 234
Iscritto il: 12/08/02 00:17
Località: Ciociaria

Sponsor
 

Re: Cancellazione righe MySQL

Postdi Zhuco » 08/07/05 16:58

Ho sbagliato ad inserire il codice, quello giusto è questo:
Codice: Seleziona tutto

<?php
    include 'gest/datauserdb.inc';
    include 'gest/errorreport.inc';
    include 'gest/host.inc';
    session_start(void);
    $id = session_id();
    $_con = mysql_connect($_server_db, $_user_db, $_password_db) or die (errorreport("Connection Failed From TEST - MySQL Error: ".mysql_error(), "404"));
    mysql_select_db ('test', $_con) or die (errorreport("Connection Failed For Selection Table Test From TEST - MySQL Error: ".mysql_error(), "404"));
    $query = "DELETE FROM test WHERE id=\"".$id."\"";
    $resquery = mysql_query($query) or die (errorreport("Query Error From TEST - Query Sent: ".$query."- MySQL Error: ".mysql_error(), "404"));
    mysql_close();
    unset($_SESSION["test"]);
    header("Location: ".$host."test.php");
?>
Thanks From .:°J@zZ°:.
Zhuco
Utente Senior
 
Post: 234
Iscritto il: 12/08/02 00:17
Località: Ciociaria

Postdi Zhuco » 08/07/05 18:20

Scusatemi se faccio le domande e poi ci rispondo da solo, qualcuno potrebbe prendermi per pazzo, comunque ho trovato la soluzione...
Ho cancellato l'utente che usavo sul server e lo ricreato e tutto è tornato OK!!!
Ora ne ho un altro di problema...
Finisco con uno ed inizo con un altro...
Ho questo codice che ho creato come debugger per provaer a risolvere un altro problema:
Codice: Seleziona tutto
<?php
    include 'gest/datauserdb.inc';
    session_start(void);
    $id = session_id();
    $_con = mysql_connect($_server_db, $_user_db, $_password_db) or die (errorreport("Connection Failed - MySQL Error: ".mysql_error(), "404"));
    mysql_select_db ('prodottidyade', $_con) or die (errorreport("Connection Failed For Selection Table - MySQL Error: ".mysql_error(), "404"));
    $query = "SELECT codice FROM TIPO WHERE id=\"".$id."\"";
    $resquery = mysql_query($query) or die (errorreport("Query Error - Query Sent: ".$query."- MySQL Error: ".mysql_error(), "404"));
    $righe=mysql_num_rows($resquery);
    $resquery = mysql_fetch_row($resquery);
    for ($i=0; $i<=(count($resquery)-1); $i++)
        {
            $tot.=$i.")".$resquery[$i]."&nbsp;";
        }
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="it" lang="it">
    <head>
        <title>Prova</title>
    </head>
    <body>
        <? echo "numero di righe nel resultset: ".$righe; ?><br />
        <? echo "numero di elementi nel vettore: ".count($resquery); ?><br />
        <? echo $tot; ?><br />
        <? echo "ID di sessione: ".$id; ?>
    </body>
</html>

Questo codice dovrebbe selezionare una colonna da una tabella e creare una specie di elenco di codici.
Il problema è il risultao che ottengo:
Codice: Seleziona tutto
numero di righe nel resultset: 2
numero di elementi nel vettore: 1
0)14e01
ID di sessione: db32be8542505587826be007dbbbe015

Come si vede nel resultset vi sono due elementi ma dopo aver eseguito
Codice: Seleziona tutto
$resquery = mysql_fetch_row($resquery);

Nel vettore $resquery vi è un solo elemento...
E difatti l'elenco ha solo il codice 14e01...
Perchè mai sta cosa strana???
Grazie a tutti e scusatemi se mi faccio domanda e risposta :roll: :roll: :roll:
Thanks From .:°J@zZ°:.
Zhuco
Utente Senior
 
Post: 234
Iscritto il: 12/08/02 00:17
Località: Ciociaria

Postdi Sora88 » 08/07/05 19:21

Codice: Seleziona tutto
    $righe=mysql_num_rows($resquery);
    $resquery = mysql_fetch_row($resquery);
    for ($i=0; $i<=(count($resquery)-1); $i++)
        {
            $tot.=$i.")".$resquery[$i]."&nbsp;";
        }


Che scopo avrebbe questo ciclo?
Due cose sono infinite: l'universo e la stupidità umana, ma riguardo l'universo ho ancora dei dubbi! (A.Einstein)
Visitate il mio situzzz! ^^ www.ffeternity.it


´¯``°¤.¸(¯`* Sora88 *´¯)¸.¤°´¯`
Sora88
Utente Junior
 
Post: 60
Iscritto il: 20/06/04 14:42

Postdi Sora88 » 08/07/05 19:25

Anche io faccio domande stupide e mi rispondi...

Comunque c'è un errore nella query...magari una colonna è vuota
Due cose sono infinite: l'universo e la stupidità umana, ma riguardo l'universo ho ancora dei dubbi! (A.Einstein)
Visitate il mio situzzz! ^^ www.ffeternity.it


´¯``°¤.¸(¯`* Sora88 *´¯)¸.¤°´¯`
Sora88
Utente Junior
 
Post: 60
Iscritto il: 20/06/04 14:42

Postdi Zhuco » 09/07/05 00:03

Sora88 ha scritto:Anche io faccio domande stupide e mi rispondi...

Comunque c'è un errore nella query...magari una colonna è vuota


No, la tabella è stata popolata appositamente per la prova, poi come si può leggere nel risultato stampato a video:
Codice: Seleziona tutto
numero di righe nel resultset: 2
numero di elementi nel vettore: 1
0)14e01
ID di sessione: db32be8542505587826be007dbbbe015

Il resultset contiene dei dati, difatti contiene le due righe caricate appositamente con ID di sessione voluto...
Ma non riesco a capire per quale motivo i dati vanno persi...
Dovrei provare con un'altro dbms...
Spero di venirici a capo di sta cosa assurda.
Thanks From .:°J@zZ°:.
Zhuco
Utente Senior
 
Post: 234
Iscritto il: 12/08/02 00:17
Località: Ciociaria

Postdi Zhuco » 09/07/05 00:08

Sora88 ha scritto:
Codice: Seleziona tutto
   
$righe=mysql_num_rows($resquery);
    $resquery = mysql_fetch_row($resquery);
    for ($i=0; $i<=(count($resquery)-1); $i++)
        {
            $tot.=$i.")".$resquery[$i]."&nbsp;";
        }


Che scopo avrebbe questo ciclo?

Scusami in precendenza l'ho scordato.
Ora ti spiego.
Dovrebbe crearmi un qualcosa del genere:
1)codice
2)codice
3)ecc
questo per il semplice motivo che in un secondo mometo il tutto in vece di terminare a video, andrebbe scritto all'interno di un file di testo.
Thanks From .:°J@zZ°:.
Zhuco
Utente Senior
 
Post: 234
Iscritto il: 12/08/02 00:17
Località: Ciociaria

Postdi archimede » 09/07/05 08:35

RTFM.

Alessandro
archimede
Moderatore
 
Post: 2755
Iscritto il: 07/11/02 12:41
Località: Genova

Postdi Zhuco » 09/07/05 13:01

archimede ha scritto:RTFM.
Alessandro

Scusa Ale ma che ci dovrei fare con il manuale?
Scusami ma non ho capito?
In quella pagina c'è solo la spiegazioe del metodo mysql_fetch_row()...
Non ho un ritorno di errore dal parser di php
Lo si comporta in maniera non voluta e non capisco perchè.
E' strano che il resultset abbia cardinalità 2 mentre il risultato dopo mysql_fetch_row() diventa 1, specialmente se la tabella è volutamente popolata in modo da dare almeno due risultati utili...
Se faccio eseguire la query da MySQL Control Center il risultato a video è una colonna con due celle e non una.
Devo fare una prova, devo popolare la tabella con 10 tuple utili...
Poi vi faccio sapere...
Thanks From .:°J@zZ°:.
Zhuco
Utente Senior
 
Post: 234
Iscritto il: 12/08/02 00:17
Località: Ciociaria

Postdi archimede » 09/07/05 13:31

Zhuco ha scritto:
archimede ha scritto:RTFM.
Alessandro

Scusa Ale ma che ci dovrei fare con il manuale?
:eeh: Leggerlo?
Retrieves the next row of a result set.
.
.
.
while ((row = mysql_fetch_row(result)))
{
.
.
.
Nota che non ho mai usato MySQL: ciò nonostante, leggendo il manuale, la natura del problema mi sembra evidente.

HTH.

Alessandro
archimede
Moderatore
 
Post: 2755
Iscritto il: 07/11/02 12:41
Località: Genova

Postdi Sora88 » 09/07/05 13:43

ehm ehm..il while è per parsare ogni riga!!!!!!!!!

Lui ne ha una sola perchè ha un solo id... non ne seleziona più di una almeno da quello che ho capito

Con quel 1) 2) vengono scritte le colonne di quella riga
Due cose sono infinite: l'universo e la stupidità umana, ma riguardo l'universo ho ancora dei dubbi! (A.Einstein)
Visitate il mio situzzz! ^^ www.ffeternity.it


´¯``°¤.¸(¯`* Sora88 *´¯)¸.¤°´¯`
Sora88
Utente Junior
 
Post: 60
Iscritto il: 20/06/04 14:42

Postdi Zhuco » 09/07/05 13:48

archimede ha scritto:
Zhuco ha scritto:
archimede ha scritto:RTFM.
Alessandro

Scusa Ale ma che ci dovrei fare con il manuale?
:eeh: Leggerlo?
Retrieves the next row of a result set.
.
.
.
while ((row = mysql_fetch_row(result)))
{
.
.
.
Nota che non ho mai usato MySQL: ciò nonostante, leggendo il manuale, la natura del problema mi sembra evidente.

HTH.

Alessandro

Se ti dicessi che ho fatto un errore da pivello???
Che ca***ta che ho scritto, stavo cercando di scandire una colonna come se fosse una riga!!!
Non riesco a capire come cavolo ho fatto a scrivere una castronata simile!!!
Che ci vuoi fare, capita :oops: :oops: :oops:
Thanks From .:°J@zZ°:.
Zhuco
Utente Senior
 
Post: 234
Iscritto il: 12/08/02 00:17
Località: Ciociaria

Postdi Sora88 » 09/07/05 13:50

;)
Due cose sono infinite: l'universo e la stupidità umana, ma riguardo l'universo ho ancora dei dubbi! (A.Einstein)
Visitate il mio situzzz! ^^ www.ffeternity.it


´¯``°¤.¸(¯`* Sora88 *´¯)¸.¤°´¯`
Sora88
Utente Junior
 
Post: 60
Iscritto il: 20/06/04 14:42

Postdi archimede » 09/07/05 14:25

:?: :?:
Sora88 ha scritto:ehm ehm..il while è per parsare ogni riga!!!!!!!!!

Lui ne ha una sola perchè ha un solo id... non ne seleziona più di una almeno da quello che ho capito
Zhuco ha scritto:numero di righe nel resultset: 2
Comunque mi pare di aver capito che ora è risolto...

Alessandro
archimede
Moderatore
 
Post: 2755
Iscritto il: 07/11/02 12:41
Località: Genova


Torna a Programmazione


Topic correlati a "Cancellazione righe MySQL":


Chi c’è in linea

Visitano il forum: Nessuno e 1 ospite