Avatar billede danco Nybegynder
26. september 2008 - 23:04 Der er 50 kommentarer og
1 løsning

Mysql til php tabel

Hejsa,
Jeg har netop fået opbygget en samling php-script til et login system, dette bygger på flere brugere.
I den forbindelse har jeg en Mysql database til opbevaring af brugeroplysninger, idet jeg har en side hvorfra jeg kan oprette brugere ville det være rart med en tabel hvor jeg kan se eksisterende brugere og evt. slette brugere.

Nogen input ?
Avatar billede kjeldsted Novice
26. september 2008 - 23:38 #1
Du skal vel lave en mysql select og udskrive i en tabel á la:

<table>
<tr>
<th>ID</th>
<th>Navn</th>
</tr>
<?
$result = mysql_query("SELECT * FROM brugere ORDER BY id ASC");
while($row = mysql_fetch_assoc($result))
{
?>
<tr>
<td><?=$row['id']?></td>
<td><?=$row['brugernavn']?></td>
</td>
<?
}
?>
</table>
}

Eller hvad eftersøger du?
Avatar billede danco Nybegynder
27. september 2008 - 00:04 #2
Det jeg søger er en tabel der viser de oplysninger der ligger i Mysql databasen,
Jeg har i min database 4 rækker;

id
Brugernavn
Password
Page

________________________________________________
| ID:  | Brugernavn:  | Password:  |  Page    |
|  1  `|  Bruger1    |  Pass1    | http://    |
|  2  |  Bruger2    |  Pass2    | http://    |
|  3  |  Bruger3    |  Pass3    | http://    |
|  4  |  Bruger4    |  Pass4    | http://    |
|      |              |            |            |
--------------------------------------------------

Det er noget i den stil, der problemer er funktion der opdatere tabelen når en ny bruger er oprettet.
Avatar billede kjeldsted Novice
27. september 2008 - 00:08 #3
Ja. Men hvis du bruger den kode jeg sendte henter den da også de nye bruger data hver gang du åbner / opdatere siden. Du skal jo så rette til:

<table>
<tr>
<th>ID</th>
<th>Brugernavn</th>
<th>Password</th>
<th>Page</th>
</tr>
<?
$result = mysql_query("SELECT * FROM brugere ORDER BY id ASC");
while($row = mysql_fetch_assoc($result))
{
?>
<tr>
<td><?=$row['id']?></td>
<td><?=$row['Brugernavn']?></td>
<td><?=$row['Password']?></td>
<td><?=$row['Page']?></td>
</td>
<?
}
?>
</table>
}

Så viser den en tabel med alle brugere.
Avatar billede danco Nybegynder
27. september 2008 - 00:09 #4
I dette eksempel henter den en database tabel der hedder "brugere" eller hvordan?

jeg kunne forestille mig at jeg skal bruge en form for login oplysninger til min database, hvordan indsættes de?
Ligesom på alle andre dokumenter den kommunikere med databasen?
Avatar billede kjeldsted Novice
27. september 2008 - 00:21 #5
Okay. Den henter fra en tabel (i min kode kaldet for "brugere") hvor den udskrive alle informationer. Altså alle rækker og kolonnerne id, brugernavn, password og page. Og en mysql connect er sådan:

$con = mysql_connect('mysqlhost','mysqluser','mysqlpass');
if(!$con){die('Kunne ikke forbinde til databaseserver'.mysql_error());}
mysql_select_db('mysqldbnavn',$con);

Hvorefter du indsætter

<table>
<tr>
<th>ID</th>
<th>Brugernavn</th>
<th>Password</th>
<th>Page</th>
</tr>
<?
$result = mysql_query("SELECT * FROM brugere ORDER BY id ASC");
while($row = mysql_fetch_assoc($result))
........

Håber du forstår
Avatar billede danco Nybegynder
27. september 2008 - 00:24 #6
Det vil sige at hvis jeg indsætter det i et dokument på følgende måde vil det virke,

$con = mysql_connect('localhost','xxxxx','xxxx');
if(!$con){die('Kunne ikke forbinde til databaseserver'.mysql_error());}
mysql_select_db('mysqldbnavn',$con);

<table>
<tr>
<th>ID</th>
<th>Brugernavn</th>
<th>Password</th>
<th>Page</th>
</tr>
<?
$result = mysql_query("SELECT * FROM kunder ORDER BY id ASC");
while($row = mysql_fetch_assoc($result))
{
?>
<tr>
<td><?=$row['id']?></td>
<td><?=$row['Brugernavn']?></td>
<td><?=$row['Password']?></td>
<td><?=$row['Page']?></td>
</td>
<?
}
?>
</table>
}
?>

Jeg undskylder mine mange "dumme" spørgsmål men jeg er i oplæringsfasen for php :)
Avatar billede kjeldsted Novice
27. september 2008 - 00:25 #7
Du skal nok ændre "mysqldbnavn", medlindre din database hedder mysqldbnavn

Og du skal ikke undskylde. Har jo selv engang være det igennem ;)
Avatar billede kjeldsted Novice
27. september 2008 - 00:26 #8
Ellers burde det vist virke, ja.
Avatar billede kjeldsted Novice
27. september 2008 - 00:34 #9
Jeg kan desuden kraftigt anbefale w3schools (http://www.w3schools.com), som har en super god PHP guide, med looping, sessions, mysql, cookies samt, meget mere. Og det skulle ret til at forstå da det er ikke er meget avancerede koder de bruger der.
Avatar billede danco Nybegynder
27. september 2008 - 00:37 #10
Jeg har lige forsøgt og uploade,,

Siden står bare blankt :o
Ikke engang overskrifterne kommer frem ,,
Avatar billede kjeldsted Novice
27. september 2008 - 00:39 #11
Jeg formoder ikke du så har slået php fejl til. Det er en rigtig god idé når mam arbejder. Ikke mindst i starten.
Avatar billede danco Nybegynder
27. september 2008 - 00:41 #12
hvordan mener du?
Jeg bruger hverken dreamweaver eller noget som helst, ganske almindelig notepad (notesblok)
Avatar billede kjeldsted Novice
27. september 2008 - 00:43 #13
Nej. PHP error er en funktion i PHP der i stedet for at udskrive en blank side ved fejl fortæller hvor der er en fejl. Har du webhost eller er det egen server?
Avatar billede danco Nybegynder
27. september 2008 - 00:45 #14
jeg har hostet hele min website hos One.com
Avatar billede danco Nybegynder
27. september 2008 - 00:46 #15
Indsætter lige

error_reporting(E_ALL);

i mit script ;)
Avatar billede kjeldsted Novice
27. september 2008 - 00:48 #16
Super. Åben kontrolpanelt (altså på www.one.com) og tryk på Avanceret (IKKE DNS) og sæt PHP error messages til On og klik opdater. Inden for 15 burde du så få en fejl meddelse i stedet for en blank side ;)
Avatar billede kjeldsted Novice
27. september 2008 - 00:49 #17
*Inden for 15 minutter burde
Avatar billede danco Nybegynder
27. september 2008 - 00:53 #18
den kommer med hele database string ,,

$con = mysql_connect('localhost','xx','xx'); if(!$con){die('Kunne ikke forbinde til databaseserver'.mysql_error());} mysql_select_db('xx',$con); ID Brugernavn Password Page
} ?>

Det er hvad jeg har på min skærm
Avatar billede kjeldsted Novice
27. september 2008 - 00:54 #19
Prøv lige at send hele koden (altså selvfølgelig uden password), men ellers resten.
Avatar billede danco Nybegynder
27. september 2008 - 00:56 #20
<?
$con = mysql_connect('localhost','DB_USER','DB_PASSWORD');
if(!$con){die('Kunne ikke forbinde til databaseserver'.mysql_error());}
mysql_select_db('DB',$con);

<table>
<tr>
<th>ID</th>
<th>Brugernavn</th>
<th>Password</th>
<th>Page</th>
</tr>
<?
$result = mysql_query("SELECT * FROM kunder ORDER BY id ASC");
while($row = mysql_fetch_assoc($result))
{
?>
<tr>
<td><?=$row['id']?></td>
<td><?=$row['Brugernavn']?></td>
<td><?=$row['Password']?></td>
<td><?=$row['Page']?></td>
</td>
<?
}
?>
</table>
}
error_reporting(E_ERROR | E_WARNING | E_PARSE);
?>
Avatar billede kjeldsted Novice
27. september 2008 - 00:56 #21
Ah. Forrresten. du har vel tilføjet

<?

i toppen ;)

Der skal jo selvfølgelig stå

<?
$con = mysql_connect('localhost','xxxxx','xxxx');
if(!$con){die('Kunne ikke forbinde til databaseserver'.mysql_error());}
mysql_select_db('mysqldbnavn',$con);
?>
<table>
<tr>
<th>ID</th>
<th>Brugernavn</th>
<th>Password</th>
<th>Page</th>
</tr>
<?
$result = mysql_query("SELECT * FROM kunder ORDER BY id ASC");
while($row = mysql_fetch_assoc($result))
{
?>
<tr>
<td><?=$row['id']?></td>
<td><?=$row['Brugernavn']?></td>
<td><?=$row['Password']?></td>
<td><?=$row['Page']?></td>
</td>
<?
}
?>
</table>
Avatar billede kjeldsted Novice
27. september 2008 - 01:01 #22
Det er det gode ved Dreamweaver, UltraEdit eller hvad man nu benytter. Det er meget nemmere at se hvor der er fejl ;)
Avatar billede danco Nybegynder
27. september 2008 - 01:04 #23
Det var meget godt,, nu fandt den ud af at lave tabellen og hente id ud,,

nu mangler den så bare brugernavn, password og page (;
Avatar billede kjeldsted Novice
27. september 2008 - 01:05 #24
Tjek i PHPMyAdmin at Brugernavn, Password samt Page skal skrive med stort.
Avatar billede danco Nybegynder
27. september 2008 - 01:10 #25
Hvor er det fantastisk (:

Er der noget bedre end når man får det til at virke og tilmed forstår HVORFOR det virker :)

Det synes jeg ikke :)

hvis du smider et svar skal jeg sørge for du får lidt ekstra point for din utrolig store hjælp på trods af tidspunktet.
Avatar billede kjeldsted Novice
27. september 2008 - 01:13 #26
Hehe. Nej. Det er der ikke. Det er en helt fantastisk følelse som man selv 2 år efter at være startet på PHP tit oplever :)

Og her er så et svar :)
Avatar billede danco Nybegynder
27. september 2008 - 01:15 #27
Værsgod ,

så er der point i din retning.

Endnu engang rigtig mange gange tak for hjælpen,
Avatar billede kjeldsted Novice
27. september 2008 - 01:17 #28
Tak for point.

Og skulle der opstå nye problemer skriver du bare. Men nu du har PHP errors er du godt på vej ;) Og husk også www.w3schools.com
Avatar billede danco Nybegynder
30. september 2008 - 22:18 #29
Til den her tabel har jeg nu forsøgt at indsætte en funktion af typen DELETE FROM ,,
Desværre har jeg ikke haft heldet, kan nogen af jer se hvori fejlen ligger?


<?php
$host="localhost"; // Host name
$username=".."; // Mysql username
$password=".."; // Mysql password
$db_name=".."; // Database name
$tbl_name=".."; // Table name

// Connect to server and select databse.
mysql_connect("$host", "$username", "$password")or die("cannot connect");
mysql_select_db("$db_name")or die("cannot select DB");

$sql="SELECT * FROM $tbl_name";
$result=mysql_query($sql);

$count=mysql_num_rows($result);

?>
<table width="400" border="0" cellspacing="1" cellpadding="0">
<tr>
<td><form name="form1" method="post" action="">
<table width="400" border="0" cellpadding="3" cellspacing="1" bgcolor="#CCCCCC">
<tr>
<td bgcolor="#FFFFFF">&nbsp;</td>
<td colspan="4" bgcolor="#FFFFFF"><strong>Delete multiple rows in mysql</strong> </td>
</tr>
<tr>
<td align="center" bgcolor="#FFFFFF">#</td>
<td align="center" bgcolor="#FFFFFF"><strong>Id</strong></td>
<td align="center" bgcolor="#FFFFFF"><strong>Brugernavn</strong></td>
<td align="center" bgcolor="#FFFFFF"><strong>Password</strong></td>
<td align="center" bgcolor="#FFFFFF"><strong>Page</strong></td>
</tr>
<?php
while($rows=mysql_fetch_array($result)){
?>
<tr>
<td align="center" bgcolor="#FFFFFF"><input name="checkbox[]" type="checkbox" id="checkbox[]" value="<? echo $rows['id']; ?>"></td>
<td bgcolor="#FFFFFF"><? echo $rows['id']; ?></td>
<td bgcolor="#FFFFFF"><? echo $rows['username']; ?></td>
<td bgcolor="#FFFFFF"><? echo $rows['password']; ?></td>
<td bgcolor="#FFFFFF"><? echo $rows['page']; ?></td>
</tr>
<?php
}
?>
<tr>
<td colspan="5" align="center" bgcolor="#FFFFFF"><input name="delete" type="submit" id="delete" value="Delete"></td>
</tr>
<?
// Check if delete button active, start this
if($delete){
for($i=0;$i<$count;$i++){
$del_id = $checkbox[$i];
$sql = "DELETE FROM $tbl_name WHERE id='$del_id'";
$result = mysql_query($sql);
}

// if successful redirect to delete_multiple.php
if($result){
echo "<meta http-equiv=\"refresh\" content=\"0;URL=test_delete.php\">";
}
}
mysql_close();
?>
</table>
</form>
</td>
</tr>
</table>

Som i kan se arbejder jeg med få en checkbox ud for hver række,

Nogen ideer til hvorfor det ikke virker ?
Avatar billede kjeldsted Novice
01. oktober 2008 - 11:43 #30
Hvad får du af fejl?
Avatar billede kjeldsted Novice
01. oktober 2008 - 11:47 #31
Hm. Prøv desuden at få den til at udskrive $chekcbox, vha:

print_r($checkbox) for at sikre at denne ikke er tom.
Avatar billede danco Nybegynder
01. oktober 2008 - 12:57 #32
Der er ingen egentligt fejlmeddelse, har brugt error(e_all) ,

den viser tabellen korrekt med delete() funktionen virker ikke ,
Avatar billede kjeldsted Novice
01. oktober 2008 - 14:07 #33
Har du prøvet print_r($checkbox)?
Avatar billede danco Nybegynder
02. oktober 2008 - 12:23 #34
hvordan mener du ?

Jeg er ikke sikker på hvor du vil bruge print_r($checkbox)?
Avatar billede kjeldsted Novice
02. oktober 2008 - 12:32 #35
Prøv fx at skrive:

<?php
$host="localhost"; // Host name
$username=".."; // Mysql username
$password=".."; // Mysql password
$db_name=".."; // Database name
$tbl_name=".."; // Table name

// Connect to server and select databse.
mysql_connect("$host", "$username", "$password")or die("cannot connect");
mysql_select_db("$db_name")or die("cannot select DB");

$sql="SELECT * FROM $tbl_name";
$result=mysql_query($sql);

$count=mysql_num_rows($result);

?>
<table width="400" border="0" cellspacing="1" cellpadding="0">
<tr>
<td><form name="form1" method="post" action="">
<table width="400" border="0" cellpadding="3" cellspacing="1" bgcolor="#CCCCCC">
<tr>
<td bgcolor="#FFFFFF">&nbsp;</td>
<td colspan="4" bgcolor="#FFFFFF"><strong>Delete multiple rows in mysql</strong> </td>
</tr>
<tr>
<td align="center" bgcolor="#FFFFFF">#</td>
<td align="center" bgcolor="#FFFFFF"><strong>Id</strong></td>
<td align="center" bgcolor="#FFFFFF"><strong>Brugernavn</strong></td>
<td align="center" bgcolor="#FFFFFF"><strong>Password</strong></td>
<td align="center" bgcolor="#FFFFFF"><strong>Page</strong></td>
</tr>
<?php
while($rows=mysql_fetch_array($result)){
?>
<tr>
<td align="center" bgcolor="#FFFFFF"><input name="checkbox[]" type="checkbox" id="checkbox[]" value="<? echo $rows['id']; ?>"></td>
<td bgcolor="#FFFFFF"><? echo $rows['id']; ?></td>
<td bgcolor="#FFFFFF"><? echo $rows['username']; ?></td>
<td bgcolor="#FFFFFF"><? echo $rows['password']; ?></td>
<td bgcolor="#FFFFFF"><? echo $rows['page']; ?></td>
</tr>
<?php
}
?>
<tr>
<td colspan="5" align="center" bgcolor="#FFFFFF"><input name="delete" type="submit" id="delete" value="Delete"></td>
</tr>
<?
// Check if delete button active, start this
if($delete){
/*
for($i=0;$i<$count;$i++){
$del_id = $checkbox[$i];
$sql = "DELETE FROM $tbl_name WHERE id='$del_id'";
$result = mysql_query($sql);
*/
print_r($checkbox);
}

// if successful redirect to delete_multiple.php
if($result){
echo "<meta http-equiv=\"refresh\" content=\"0;URL=test_delete.php\">";
}
}
mysql_close();
?>
</table>
</form>
</td>
</tr>
</table>

Så vidt jeg kan se ser det ikke ud til at $checkbox indeholder noget, hvorfor den ikke udføre dine komandoer.
Avatar billede danco Nybegynder
02. oktober 2008 - 12:41 #36
Der opstod en fejl i linje 65, dette er løst.

Siden står nu bare konstant og opdaterer,  der sker stadig ingenting ved tryk på "Delete"
Avatar billede kjeldsted Novice
02. oktober 2008 - 12:54 #37
Men hvad udskriver det jeg skrev oven over?
Avatar billede kjeldsted Novice
02. oktober 2008 - 12:57 #38
Hov. Det skal jo rettes til:

<?
// Check if delete button active, start this
if($delete){
/*
for($i=0;$i<$count;$i++){
$del_id = $checkbox[$i];
$sql = "DELETE FROM $tbl_name WHERE id='$del_id'";
$result = mysql_query($sql);
}
*/
print_r($checkbox);


// if successful re
Avatar billede danco Nybegynder
02. oktober 2008 - 12:57 #39
den udskriver en en fejl i linje 65 ;;

// if successful redirect to delete_multiple.php
if($result){
echo "<meta http-equiv=\"refresh\" content=\"0;URL=test_delete.php\">";
} <---(der)
}
mysql_close();
?>
Avatar billede kjeldsted Novice
02. oktober 2008 - 12:59 #40
Ja. Men ret til: 02/10-2008 12:57:10
Avatar billede danco Nybegynder
02. oktober 2008 - 13:05 #41
Fejl i Linje 70 ,,

hvilket er </table> , er jeg ikke sikker på hvad der sker?
Avatar billede kjeldsted Novice
02. oktober 2008 - 13:13 #42
Okay. Skriv lige hvordan hele koden ser ud nu?
Avatar billede danco Nybegynder
02. oktober 2008 - 13:18 #43
<?php
$host="localhost"; // Host name
$username=".."; // Mysql username
$password=".."; // Mysql password
$db_name=".."; // Database name
$tbl_name=".."; // Table name

// Connect to server and select databse.
mysql_connect("$host", "$username", "$password")or die("cannot connect");
mysql_select_db("$db_name")or die("cannot select DB");

$sql="SELECT * FROM $tbl_name";
$result=mysql_query($sql);

$count=mysql_num_rows($result);

?>
<table width="400" border="0" cellspacing="1" cellpadding="0">
<tr>
<td><form name="form1" method="post" action="">
<table width="400" border="0" cellpadding="3" cellspacing="1" bgcolor="#CCCCCC">
<tr>
<td bgcolor="#FFFFFF">&nbsp;</td>
<td colspan="4" bgcolor="#FFFFFF"><strong>Delete multiple rows in mysql</strong> </td>
</tr>
<tr>
<td align="center" bgcolor="#FFFFFF">#</td>
<td align="center" bgcolor="#FFFFFF"><strong>Id</strong></td>
<td align="center" bgcolor="#FFFFFF"><strong>Brugernavn</strong></td>
<td align="center" bgcolor="#FFFFFF"><strong>Password</strong></td>
<td align="center" bgcolor="#FFFFFF"><strong>Page</strong></td>
</tr>
<?php
while($rows=mysql_fetch_array($result)){
?>
<tr>
<td align="center" bgcolor="#FFFFFF"><input name="checkbox[]" type="checkbox" id="checkbox[]" value="<? echo $rows['id']; ?>"></td>
<td bgcolor="#FFFFFF"><? echo $rows['id']; ?></td>
<td bgcolor="#FFFFFF"><? echo $rows['username']; ?></td>
<td bgcolor="#FFFFFF"><? echo $rows['password']; ?></td>
<td bgcolor="#FFFFFF"><? echo $rows['page']; ?></td>
</tr>
<?php
}
?>
<tr>
<td colspan="5" align="center" bgcolor="#FFFFFF"><input name="delete" type="submit" id="delete" value="Delete"></td>
</tr>
<?
// Check if delete button active, start this
if($delete){
/*
for($i=0;$i<$count;$i++){
$del_id = $checkbox[$i];
$sql = "DELETE FROM $tbl_name WHERE id='$del_id'";
$result = mysql_query($sql);
}
*/
print_r($checkbox);
// if successful redirect to delete_multiple.php
if($result){
echo "<meta http-equiv=\"refresh\" content=\"0;URL=test_delete.php\">";
}
mysql_close();
?>
</table>
</form>
</td>
</tr>
</table>
Avatar billede kjeldsted Novice
02. oktober 2008 - 13:20 #44
Og hvilken fejl beskrivelse får du?
Avatar billede kjeldsted Novice
02. oktober 2008 - 13:22 #45
Ah. Der mangler noget. Ret til:

<?php
$host="localhost"; // Host name
$username=".."; // Mysql username
$password=".."; // Mysql password
$db_name=".."; // Database name
$tbl_name=".."; // Table name

// Connect to server and select databse.
mysql_connect("$host", "$username", "$password")or die("cannot connect");
mysql_select_db("$db_name")or die("cannot select DB");

$sql="SELECT * FROM $tbl_name";
$result=mysql_query($sql);

$count=mysql_num_rows($result);

?>
<table width="400" border="0" cellspacing="1" cellpadding="0">
<tr>
<td><form name="form1" method="post" action="">
<table width="400" border="0" cellpadding="3" cellspacing="1" bgcolor="#CCCCCC">
<tr>
<td bgcolor="#FFFFFF">&nbsp;</td>
<td colspan="4" bgcolor="#FFFFFF"><strong>Delete multiple rows in mysql</strong> </td>
</tr>
<tr>
<td align="center" bgcolor="#FFFFFF">#</td>
<td align="center" bgcolor="#FFFFFF"><strong>Id</strong></td>
<td align="center" bgcolor="#FFFFFF"><strong>Brugernavn</strong></td>
<td align="center" bgcolor="#FFFFFF"><strong>Password</strong></td>
<td align="center" bgcolor="#FFFFFF"><strong>Page</strong></td>
</tr>
<?php
while($rows=mysql_fetch_array($result)){
?>
<tr>
<td align="center" bgcolor="#FFFFFF"><input name="checkbox[]" type="checkbox" id="checkbox[]" value="<? echo $rows['id']; ?>"></td>
<td bgcolor="#FFFFFF"><? echo $rows['id']; ?></td>
<td bgcolor="#FFFFFF"><? echo $rows['username']; ?></td>
<td bgcolor="#FFFFFF"><? echo $rows['password']; ?></td>
<td bgcolor="#FFFFFF"><? echo $rows['page']; ?></td>
</tr>
<?php
}
?>
<tr>
<td colspan="5" align="center" bgcolor="#FFFFFF"><input name="delete" type="submit" id="delete" value="Delete"></td>
</tr>
<?
// Check if delete button active, start this
if($delete){
/*
for($i=0;$i<$count;$i++){
$del_id = $checkbox[$i];
$sql = "DELETE FROM $tbl_name WHERE id='$del_id'";
$result = mysql_query($sql);
}
*/
print_r($checkbox);
// if successful redirect to delete_multiple.php
/*
if($result){
echo "<meta http-equiv=\"refresh\" content=\"0;URL=test_delete.php\">";
}
*/
}
mysql_close();
?>
</table>
</form>
</td>
</tr>
</table>

Så skulle den virke
Avatar billede danco Nybegynder
02. oktober 2008 - 13:36 #46
Jeg kan ikke se hvad du har rettet,
Nu viser den rigtigt nok tabellen men den sletter stadig ikke den række jeg beder om ved hjælp af checkboxen,
Den opdatere blot siden (fjerner flueben fra boxen)

Jeg må ærligt indrømme at jeg har mistet overblikket,
Avatar billede kjeldsted Novice
02. oktober 2008 - 13:45 #47
Ja. Men det har jeg ikke ;)

Hvis ikke ovenståend udskriver noget (altså en blank side) er $checkbox tom og derved er det jo ikke så mærkeligt at den ikke sletter noget ;)

Problemet er denne:

for($i=0;$i<$count;$i++){
$del_id = $checkbox[$i];
$sql = "DELETE FROM $tbl_name WHERE id='$del_id'";
$result = mysql_query($sql);

da $checkbox er tom sletter den fran $tbl_name der hvor id = ''.

Ganske enkelt. Så hvis du retter tilbage til

<?php
$host="localhost"; // Host name
$username=".."; // Mysql username
$password=".."; // Mysql password
$db_name=".."; // Database name
$tbl_name=".."; // Table name

// Connect to server and select databse.
mysql_connect("$host", "$username", "$password")or die("cannot connect");
mysql_select_db("$db_name")or die("cannot select DB");

$sql="SELECT * FROM $tbl_name";
$result=mysql_query($sql);

$count=mysql_num_rows($result);

?>
<table width="400" border="0" cellspacing="1" cellpadding="0">
<tr>
<td><form name="form1" method="post" action="">
<table width="400" border="0" cellpadding="3" cellspacing="1" bgcolor="#CCCCCC">
<tr>
<td bgcolor="#FFFFFF">&nbsp;</td>
<td colspan="4" bgcolor="#FFFFFF"><strong>Delete multiple rows in mysql</strong> </td>
</tr>
<tr>
<td align="center" bgcolor="#FFFFFF">#</td>
<td align="center" bgcolor="#FFFFFF"><strong>Id</strong></td>
<td align="center" bgcolor="#FFFFFF"><strong>Brugernavn</strong></td>
<td align="center" bgcolor="#FFFFFF"><strong>Password</strong></td>
<td align="center" bgcolor="#FFFFFF"><strong>Page</strong></td>
</tr>
<?php
while($rows=mysql_fetch_array($result)){
?>
<tr>
<td align="center" bgcolor="#FFFFFF"><input name="checkbox[]" type="checkbox" id="checkbox[]" value="<? echo $rows['id']; ?>"></td>
<td bgcolor="#FFFFFF"><? echo $rows['id']; ?></td>
<td bgcolor="#FFFFFF"><? echo $rows['username']; ?></td>
<td bgcolor="#FFFFFF"><? echo $rows['password']; ?></td>
<td bgcolor="#FFFFFF"><? echo $rows['page']; ?></td>
</tr>
<?php
}
?>
<tr>
<td colspan="5" align="center" bgcolor="#FFFFFF"><input name="delete" type="submit" id="delete" value="Delete"></td>
</tr>
<?
// Check if delete button active, start this
if($delete){
for($i=0;$i<$count;$i++){
$del_id = $checkbox[$i];
$sql = "DELETE FROM $tbl_name WHERE id='$del_id'";
$result = mysql_query($sql);
}

// if successful redirect to delete_multiple.php
if($result){
echo "<meta http-equiv=\"refresh\" content=\"0;URL=test_delete.php\">";
}
}
mysql_close();
?>
</table>
</form>
</td>
</tr>
</table>

Så er du tilbage til den kode du oprindeligt skrev. Du skal nok lave en ændring så $checkbox ikke er tom :)
Avatar billede kjeldsted Novice
02. oktober 2008 - 13:49 #48
Hvis du desuden kigger på linjen med checkboxen

<input name="checkbox[]" type="checkbox" id="checkbox[]" value="<? echo $rows['id']; ?>">

Kan du vel også se at navnet på alle dine checkboxe er checkbox[]. Hvilket du INTET får ud af.
Avatar billede danco Nybegynder
02. oktober 2008 - 13:50 #49
"Du skal nok lave en ændring så $checkbox ikke er tom :)"

hvordan mener du?

Så man fjerner markering fra dem der ikke skal slettes eller hvad tanker på?
Avatar billede kjeldsted Novice
02. oktober 2008 - 13:52 #50
Alle dine checkboxe har det samme navn. Nemlig checkbox[]. Du skal nok give dem et navn hver især.
Avatar billede danco Nybegynder
03. oktober 2008 - 09:29 #51
Kan jeg så ikke bruge checkbox['id'] ?

således vil checkboxen hedde det samme som ID kolonnen, så vil det også være entydigt for hver række ,,
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester