problema con mysql_data_seek(), mysql_fetch_row() e mysql_free_result()

  • Creatore Discussione Creatore Discussione skate84
  • Data di inizio Data di inizio

skate84

Utente Attivo
16 Mag 2009
83
0
0
Ciao a tutti ho questo problema:

praticamente voglio fare in modo che l'amministratore quando entra nella sezione di modifica del sito, possa vedere tutti gli utenti registrati (chi può modificare qualcosa) in una tabella e con la possibilità di eliminare e/o modificare i dati di questi utenti.

Praticamente quando schiaccio per modificare mi escono questi errori:

Warning: mysql_data_seek(): supplied argument is not a valid MySQL result resource in C:\xampp\htdocs\nome_cartella\versione con db\modifica_dati_utente.php on line 22

Warning: mysql_fetch_row(): supplied argument is not a valid MySQL result resource in C:\xampp\htdocs\nome_cartella\versione con db\modifica_dati_utente.php on line 23

Warning: Invalid argument supplied for foreach() in C:\xampp\htdocs\nome_cartella\versione con db\modifica_dati_utente.php on line 28

Warning: mysql_free_result(): supplied argument is not a valid MySQL result resource in C:\xampp\htdocs\Lavoro_stage\versione con db\modifica_dati_utente.php on line 39

vi posto i codici, magari mi sapete dire dove sbaglio, cosa c'è di sbagliato.

dati_utente.php
<?php
include ("connect.php");
?>

<?php
$sql= "select * from utente";
$result = mysql_query($sql, $db);
$AffectedRows = mysql_affected_rows($db);
echo
"<table border=\"1\">\n";
for ($index=0; $index<$AffectedRows; $index++)
{
$row=mysql_fetch_row($result);
if ($index==0)
{
echo "<tr>\n";
foreach ($row as $k => $v)
{
$myfield = mysql_fetch_field($result,$k);
print ("<td><b>" . $myfield->name . "</b></td>");
}
echo "</tr>\n";
}
foreach ($row as $k => $v)
{
echo "<td>$v&nbsp;";
if ($k==0)
{
echo "<br>";
echo "<a href=\"?id=195?id=$v\">Cancella</a>";
echo "<br>";
echo "<a href=\"?id=194?id=$v\">Modifica</a>";
}
echo "</td>";
}
echo "</tr>\n";
}
echo "</table>\n";



mysql_free_result($result);
mysql_close($db);
?>

modifica_dati_utente.php
<?php
include ("connect.php");
?>

<?php

$confirm=$_REQUEST['confirm'];
$id=$_REQUEST['id'];

if (!$confirm)
{
$sql="select * from utente where id=$id";
$result = mysql_query($sql, $db);
$AffectedRows = mysql_affected_rows($db);

if ($AffectedRows==0)
{
echo "Non esistono record con i criteri selezionati";
}
else
{
mysql_data_seek($result,0);
$row=mysql_fetch_row($result);

echo "<table>";
echo "<form method=\"post\"action=\"{$_SERVER['PHP_SELF']}\">";

foreach ($row as $k => $v)
{
$myfield = mysql_fetch_field($result,$k);
echo "<tr><td>$myfield->name</td>";
echo "<td><input type=\"text\" value=\"" . $v . "\" name=\"" . $myfield->name . "\" size=\"100\" </td></tr>";
}
echo "<tr><td><input type=\"submit\" value=\"Conferma modifiche\"></td></tr>";
echo "<input type=\"hidden\" name=\"confirm\" value=\"1\">";
echo "</form>";
echo "</table>";

mysql_free_result($result);
mysql_close($db);
}
}
else
{
$username=$_REQUEST['username'];
$password=$_REQUEST['password'];
$nome=$_REQUEST['nome'];
$cognome=$_REQUEST['cognome'];
$cripta_password=MD5($password);

$query="update utente set username=\"$username\"," . "password=\"$cripta_password\"," . "nome=\"$nome\"," . "cognome=\"$cognome\"" . "where id=$id";

$result = mysql_query($query, $db);
$AffectedRows = mysql_affected_rows($db);

if ($AffectedRows!=0)
{
echo "Il record è stato aggiornato";
echo "<a href=\"dati_utente.php\">Torna alla lista</a>";
}
//mysql_free_result($result);
mysql_close($db);
}
?>

è da ieri che sono dietro a cercare di capire ma non trovo la soluzione..sicuramente sarà una piccola cosa...

ho un altro piccolo problema..per eliminare... mi funziona tutto a parte che non mi elimina nessun record, ma mi dice cmq che il record è stato eliminato. Posso postare qua il codice o devo aprire un nuovo post?

spero che qualcuno sappia aiutarmi.
 
Nessuno sa dirmi qualcosa in merito..sono diversi giorni che provo a risolvere senza riuscirci.

Spero in una qualche risposta.
Grazie
 
Nessuno che sappia dirmi qualcosa? è abbastanza urgente..non riesco a venirne a capo.

Se non mi sono spiegato bene, cerco di rispiegare di nuovo ;)
 
Piano con gli up, cerchiamo di rispondere a tutti con il poco tempo che abbiamo a disposizione.

Prova a modificare così:
PHP:
$result = mysql_query($sql, $db) or die (mysql_error());
e vedi se ti stampa qualche errore.
 
Scusa non era mia intenzione :)

Cmq se faccio come hai detto..nel file di modifica mi esce questo:

You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '?id=17' at line 1
 
scusa non verrei dire la mia solita pu.....ta, ma mi sembra che

PHP:
echo "<br>";
echo "<a href=\"?id=195?id=$v\">Cancella</a>";
echo "<br>";
echo "<a href=\"?id=194?id=$v\">Modifica</a>";

contenga un errore

prova questo mini script e verifica se era quello che volevi trasmettere

PHP:
<?php
echo $_GET['id'];
echo "<br>";
$v="pincppallo";
echo "<a href=\"?id=195?id=$v\">Cancella</a>";
echo "<br>";
echo "<a href=\"?id=194?id=$v\">Modifica</a>";
?>

perchè se vuoi trasmettere due valori
PHP:
echo "<a href=\"?id=194&id=$v\">Modifica</a>";//id con due valori diversi????
se devi avere due valori da riprendere con get

PHP:
echo "<a href=\"?id1=194&id2=$v\">Modifica</a>";

se invece li vuoi concatenare mi sembrerebbe giusto farlo prima
 
Ciao ho letto ora, grazie comunque per la risposta..infatti il problema era proprio li!

Stamattina ho trovato la soluzione..ed ho corretto :D
 

Discussioni simili