Php probleem variable
Ik heb een probleem met mijn script. Ik wil ervoor zorgen dat $naam wordt mee genomen van warns.php naar verwerken.php. Helaas krijg ik op dit moment bij verwerken.php een error met dat die de variable niet herkent.
Warns.php
Quote:
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
<?php
mysql_connect("localhost","XX","XX");
mysql_select_db("bans");
$select = mysql_query("SELECT player_id,COUNT(type) FROM `bans` WHERE `type`=4 GROUP BY `player_id` ORDER BY COUNT(type) DESC") or die(mysql_error());
$nr = 1;
echo "<table border='1'>
<tr>
<th> </th>
<th>Naam</th>
<th>Waarschuwingen</th>
<th>Verbannen</th>
</tr>";
while($ft = mysql_fetch_assoc($select)){
if($ft['COUNT(type)']>2){
echo '<form action="verwerken.php" method="post">';
echo '<tr>';
echo '<td>'.$nr.'</td>';
echo '<td>'.playernaam($ft['player_id']).'</td>';
$naam = playernaam($ft['player_id']);
echo '<td>'.$ft['COUNT(type)'].'</td>';
echo '<td><input type="submit"/></td>';
echo '<tr>';
$nr++;
}
}
echo '</table>';
function playernaam($playerid){
$sql = mysql_query("SELECT `name` FROM `users` WHERE `id`='$playerid'") or die(mysql_error());
$pn = mysql_fetch_assoc($sql);
return $pn['name'];
}
function getbanned($playerid){
$sql2 = mysql_query("SELECT * FROM `bans` WHERE `player_id` = '$playerid' and `type` = 1") or die(mysql_error());
if(mysql_num_rows($sql2)>=1){
return 'Ja';
}
else{
return 'Nee';
}
}
?>
mysql_connect("localhost","XX","XX");
mysql_select_db("bans");
$select = mysql_query("SELECT player_id,COUNT(type) FROM `bans` WHERE `type`=4 GROUP BY `player_id` ORDER BY COUNT(type) DESC") or die(mysql_error());
$nr = 1;
echo "<table border='1'>
<tr>
<th> </th>
<th>Naam</th>
<th>Waarschuwingen</th>
<th>Verbannen</th>
</tr>";
while($ft = mysql_fetch_assoc($select)){
if($ft['COUNT(type)']>2){
echo '<form action="verwerken.php" method="post">';
echo '<tr>';
echo '<td>'.$nr.'</td>';
echo '<td>'.playernaam($ft['player_id']).'</td>';
$naam = playernaam($ft['player_id']);
echo '<td>'.$ft['COUNT(type)'].'</td>';
echo '<td><input type="submit"/></td>';
echo '<tr>';
$nr++;
}
}
echo '</table>';
function playernaam($playerid){
$sql = mysql_query("SELECT `name` FROM `users` WHERE `id`='$playerid'") or die(mysql_error());
$pn = mysql_fetch_assoc($sql);
return $pn['name'];
}
function getbanned($playerid){
$sql2 = mysql_query("SELECT * FROM `bans` WHERE `player_id` = '$playerid' and `type` = 1") or die(mysql_error());
if(mysql_num_rows($sql2)>=1){
return 'Ja';
}
else{
return 'Nee';
}
}
?>
Verwerken.php (de Websend kan geneerd worden)
Quote:
Code (php)
1
2
3
4
5
6
7
8
9
2
3
4
5
6
7
8
9
<?php
include_once 'Websend.php';
$ws = new Websend("IPWASHIER");
$ws->connect("WACHTWOORD");
$ws->doCommandAsConsole(" $naam !:)");
$ws->disconnect();
echo "Gedaan, kijk nu ingame";
?>
include_once 'Websend.php';
$ws = new Websend("IPWASHIER");
$ws->connect("WACHTWOORD");
$ws->doCommandAsConsole(" $naam !:)");
$ws->disconnect();
echo "Gedaan, kijk nu ingame";
?>
Alvast bedankt.
Gewijzigd op 04/07/2013 11:24:52 door Pix Pixer
Geef het daar mee, in een hidden.
bv
Code (php)
Dan vind je ze in Verwerken.php terug met $_POST['naam']
of maak gebruik van een $_SESSION of $_COOKIE om je variabele in op te slaan
Toevoeging op 04/07/2013 13:46:12:
Wat ik dus probeer te maken is een tabel waar ik gebruikers met de meeste waarschuwingen in staan. Met 1 knop moet ik ze dan kunnen verbannen.
Probleem is nu dat die bij verwerken.php nu steeds alleen de naam van de laatste user pakt en niet bij elke knop de user die ervoor staan.
Script;
Quote:
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
<?php
mysql_connect("localhost","XX","XX");
mysql_select_db("bans");
$select = mysql_query("SELECT player_id,COUNT(type) FROM `bans` WHERE `type`=4 GROUP BY `player_id` ORDER BY COUNT(type) DESC") or die(mysql_error());
$nr = 1;
echo "<table border='1'>
<tr>
<th> </th>
<th>Naam</th>
<th>Waarschuwingen</th>
<th>Verbannen</th>
</tr>";
while($ft = mysql_fetch_assoc($select)){
if($ft['COUNT(type)']>2){
echo '<form action="verwerken.php" method="post">';
echo '<tr>';
echo '<td>'.$nr.'</td>';
echo '<td>'.playernaam($ft['player_id']).'</td>';
$naam = playernaam($ft['player_id']);
echo '<td>'.$ft['COUNT(type)'].'</td>';
echo '<input type="hidden" name="naam" value="' . $naam . '">';
echo '<td><input type="submit"/></td>';
echo '<tr>';
$nr++;
}
}
echo '</table>';
function playernaam($playerid){
$sql = mysql_query("SELECT `name` FROM `users` WHERE `id`='$playerid'") or die(mysql_error());
$pn = mysql_fetch_assoc($sql);
return $pn['name'];
}
function getbanned($playerid){
$sql2 = mysql_query("SELECT * FROM `bans` WHERE `player_id` = '$playerid' and `type` = 1") or die(mysql_error());
if(mysql_num_rows($sql2)>=1){
return 'Ja';
}
else{
return 'Nee';
}
}
?>
mysql_connect("localhost","XX","XX");
mysql_select_db("bans");
$select = mysql_query("SELECT player_id,COUNT(type) FROM `bans` WHERE `type`=4 GROUP BY `player_id` ORDER BY COUNT(type) DESC") or die(mysql_error());
$nr = 1;
echo "<table border='1'>
<tr>
<th> </th>
<th>Naam</th>
<th>Waarschuwingen</th>
<th>Verbannen</th>
</tr>";
while($ft = mysql_fetch_assoc($select)){
if($ft['COUNT(type)']>2){
echo '<form action="verwerken.php" method="post">';
echo '<tr>';
echo '<td>'.$nr.'</td>';
echo '<td>'.playernaam($ft['player_id']).'</td>';
$naam = playernaam($ft['player_id']);
echo '<td>'.$ft['COUNT(type)'].'</td>';
echo '<input type="hidden" name="naam" value="' . $naam . '">';
echo '<td><input type="submit"/></td>';
echo '<tr>';
$nr++;
}
}
echo '</table>';
function playernaam($playerid){
$sql = mysql_query("SELECT `name` FROM `users` WHERE `id`='$playerid'") or die(mysql_error());
$pn = mysql_fetch_assoc($sql);
return $pn['name'];
}
function getbanned($playerid){
$sql2 = mysql_query("SELECT * FROM `bans` WHERE `player_id` = '$playerid' and `type` = 1") or die(mysql_error());
if(mysql_num_rows($sql2)>=1){
return 'Ja';
}
else{
return 'Nee';
}
}
?>
Wat ik denk is dat hij maar 1 naam kan verzenden met POST. Misschien dan toch sessions gebruiken? Heb alleen geen idee hoe dat moet.
Bedankt.
Gewijzigd op 04/07/2013 13:48:10 door Pix Pixer
Code (php)
1
2
3
4
5
6
2
3
4
5
6
SELECT player_id, name, COUNT(type)
FROM `bans`
LEFT JOIN users ON bans.player_id = users.id
WHERE `type`=4
GROUP BY `player_id`
ORDER BY COUNT(type) DESC
FROM `bans`
LEFT JOIN users ON bans.player_id = users.id
WHERE `type`=4
GROUP BY `player_id`
ORDER BY COUNT(type) DESC
Het probleem met je verbannen van de juiste speler komt omdat je alle namen van de spelers in een hidden input zet, maar al die hidden inputs hebben dezelfde naam. Alleen de laatste blijft dus over, die overschrijft alle anderen.
Ik zou ervoor kiezen om voor elke knop een apart form te maken, met daarin alleen de knop en de hidden input voor die speler. Zo gaat alleen de naam mee van de speler die je een ban wilt geven. Je krijgt dus een apart form in elke rij in je tabel.
Toevoeging op 04/07/2013 13:57:03:
En wel je form tag afsluiten, dat doe je namelijk helemaal niet!
Erwin H op 04/07/2013 13:55:52:
Het ophalen van de speler namen moet je echt niet zo doen. Je runt nu tig queries, terwijl je het in 1 kan doen:
Het probleem met je verbannen van de juiste speler komt omdat je alle namen van de spelers in een hidden input zet, maar al die hidden inputs hebben dezelfde naam. Alleen de laatste blijft dus over, die overschrijft alle anderen.
Ik zou ervoor kiezen om voor elke knop een apart form te maken, met daarin alleen de knop en de hidden input voor die speler. Zo gaat alleen de naam mee van de speler die je een ban wilt geven. Je krijgt dus een apart form in elke rij in je tabel.
Toevoeging op 04/07/2013 13:57:03:
En wel je form tag afsluiten, dat doe je namelijk helemaal niet!
Code (php)
1
2
3
4
5
6
2
3
4
5
6
SELECT player_id, name, COUNT(type)
FROM `bans`
LEFT JOIN users ON bans.player_id = users.id
WHERE `type`=4
GROUP BY `player_id`
ORDER BY COUNT(type) DESC
FROM `bans`
LEFT JOIN users ON bans.player_id = users.id
WHERE `type`=4
GROUP BY `player_id`
ORDER BY COUNT(type) DESC
Het probleem met je verbannen van de juiste speler komt omdat je alle namen van de spelers in een hidden input zet, maar al die hidden inputs hebben dezelfde naam. Alleen de laatste blijft dus over, die overschrijft alle anderen.
Ik zou ervoor kiezen om voor elke knop een apart form te maken, met daarin alleen de knop en de hidden input voor die speler. Zo gaat alleen de naam mee van de speler die je een ban wilt geven. Je krijgt dus een apart form in elke rij in je tabel.
Toevoeging op 04/07/2013 13:57:03:
En wel je form tag afsluiten, dat doe je namelijk helemaal niet!
Dank. Heb je toevallig een klein voorbeeld hoe ik dit doe?
Pardon? Je hebt alles al, je moet alleen een afsluitende form tag erbij zetten. Daar heb je hoop ik toch geen voorbeeld voor nodig....
Erwin H op 04/07/2013 14:24:35:
Pardon? Je hebt alles al, je moet alleen een afsluitende form tag erbij zetten. Daar heb je hoop ik toch geen voorbeeld voor nodig....
Nee nee, dat zou niet goed zijn. Ik ga even proberen of het nu wel werkt, dank.
//Edit Hij werkt nu top, stomme fout van mij. Ik ga even verder het script uitbreiden, erg bedankt Erwin!
Gewijzigd op 04/07/2013 14:29:25 door Pix Pixer