26. september 2008 - 23:04Der 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.
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?
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)) ........
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 :)
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.
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?
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 ;)
$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 } ?>
<? $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); ?>
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);
<?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);
<?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);
<?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);
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,
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);
således vil checkboxen hedde det samme som ID kolonnen, så vil det også være entydigt for hver række ,,
Synes godt om
Ny brugerNybegynder
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.