par
moogli » 18 févr. 2014, 23:17
Warning: Invalid argument supplied for foreach() in /homepages.......admin_membres_valide.php on line 26
y a 20 lignes dans le code que tu fournis, je conclus donc que :
- soit tu ne fournit pas le code complet
- soit ce n'est pas le bon code.
voila comment tu peux faire (note l'utilisation de mysqli plutôt que mysql qui est dépréciée et vouée à la suppression dans une future version)
<?php
//connexion mysql
$conn = mysqli_connect('localhost', 'user', 'password', 'la base');
if (!empty($_POST['update']) && is_array($_POST['update']) && count($_POST['update']) > 0) {
// utilise mysqli_real_escape_string http://fr2.php.net/manual/fr/mysqli.real-escape-string.php
// sinon tu t'expose à une faille type injection sql
$sql = 'UPDATE membres SET valide=1 WHERE membres.id in(' . implode(',', $_POST['update']) . ')';
$ret = mysqli_query($conn, $sql);
if ($ret !== false) {
// erreur
$err = mysqli_error($conn);
}
}
?>
<!Doctype html>
<html>
<head>
<title>Validation membre</title>
</head>
<body>
<h1>Liste des membres à valider</h1>
<?php
if (!empty($err)) {
// affiche un beau qui va bien pour les gens
echo $err;
}
?>
<form method="post" action="">
<table>
<thead>
<tr>
<th>Pseudo</th>
<th>Email</th>
<th>Date d'inscription</th>
<th>profil</th>
<th>Modifier</th>
<th>Valider</th>
</tr>
</thead>
<tbody>
<?php
$sql = 'select id,date_inscription,pseudo, email from membres where valide=0';
$result = mysqli_query($conn, $sql);
while ($data = mysqli_fetch_array($result)) {
echo '<tr>';
echo '<td>', $data['pseudo'], '</td>';
echo '<td>', $data['email'], '</td>';
echo '<td>', date('d/m/Y', $data['date_inscription']), '</td>';
echo '<td><a href="profil.php?id=', $data['id'], '">Voir le profil</a></td>';
echo '<td><a href="admin_modifier_profil.php?id=', $data['id'], '">Modifier le profil</a></td>';
echo '<td><input type="checkbox" name="update[]" value="', $data['id'], '"</td>';
echo '<td></td>';
echo '</tr>';
}
mysqli_free_result($result);
mysqli_close($conn);
?>
</tbody>
</table>
<input type="submit" name="validation" value="Valider"/>
</form>
</body>
</html>
@+
[quote="cris84"]Warning: Invalid argument supplied for foreach() in /homepages.......admin_membres_valide.php on line 26[/quote]
y a 20 lignes dans le code que tu fournis, je conclus donc que :
- soit tu ne fournit pas le code complet
- soit ce n'est pas le bon code.
voila comment tu peux faire (note l'utilisation de mysqli plutôt que mysql qui est dépréciée et vouée à la suppression dans une future version)
[php]<?php
//connexion mysql
$conn = mysqli_connect('localhost', 'user', 'password', 'la base');
if (!empty($_POST['update']) && is_array($_POST['update']) && count($_POST['update']) > 0) {
// utilise mysqli_real_escape_string http://fr2.php.net/manual/fr/mysqli.real-escape-string.php
// sinon tu t'expose à une faille type injection sql
$sql = 'UPDATE membres SET valide=1 WHERE membres.id in(' . implode(',', $_POST['update']) . ')';
$ret = mysqli_query($conn, $sql);
if ($ret !== false) {
// erreur
$err = mysqli_error($conn);
}
}
?>
<!Doctype html>
<html>
<head>
<title>Validation membre</title>
</head>
<body>
<h1>Liste des membres à valider</h1>
<?php
if (!empty($err)) {
// affiche un beau qui va bien pour les gens
echo $err;
}
?>
<form method="post" action="">
<table>
<thead>
<tr>
<th>Pseudo</th>
<th>Email</th>
<th>Date d'inscription</th>
<th>profil</th>
<th>Modifier</th>
<th>Valider</th>
</tr>
</thead>
<tbody>
<?php
$sql = 'select id,date_inscription,pseudo, email from membres where valide=0';
$result = mysqli_query($conn, $sql);
while ($data = mysqli_fetch_array($result)) {
echo '<tr>';
echo '<td>', $data['pseudo'], '</td>';
echo '<td>', $data['email'], '</td>';
echo '<td>', date('d/m/Y', $data['date_inscription']), '</td>';
echo '<td><a href="profil.php?id=', $data['id'], '">Voir le profil</a></td>';
echo '<td><a href="admin_modifier_profil.php?id=', $data['id'], '">Modifier le profil</a></td>';
echo '<td><input type="checkbox" name="update[]" value="', $data['id'], '"</td>';
echo '<td></td>';
echo '</tr>';
}
mysqli_free_result($result);
mysqli_close($conn);
?>
</tbody>
</table>
<input type="submit" name="validation" value="Valider"/>
</form>
</body>
</html>[/php]
@+