Permalänk

Ändra SQL-tabell med PHP!

Hej,
Jag skulle behöva ändra "UPDATE" två tabeller som jag har i SQL med hjälp av PHP.
Någon som kan hjälpa mig med hur man går till väga?
Tabellerna heter:
tbl_film
1 ID int(11) No None AUTO_INCREMENT Change Drop More
2 Titel text latin1_swedish_ci No None Change Drop More
3 Produktionsar int(4) Yes NULL Change Drop More
4 Regissor_id int(3)

tbl_regissor
1 id int(3) No None AUTO_INCREMENT Change Drop More
2 regissor varchar(30) latin1_swedish_ci Yes NULL

Hur ska jag gå till väga för att kunna ändra filmnamn, produktionsår, regissör osv?
Vore extremt tacksam för hjälpen!

Permalänk
Medlem

Du kan inget om php? Annars borde du verkligen kunna hittade det fortare än tiden det tar att göra en tråd här! En enkel googling på "php update" ger alla svar som krävs. Kan du däremot ingen php alls blir det svårare.

Exempel:
mysql_query("UPDATE Persons SET Age = '36'");

Kom ihåg att du måste connecta till din databas före...

Permalänk

<?php
include("db.inc.php");
db_connect(); /* Ansluter till databasen */

$query = "SELECT * FROM tbl_film ORDER BY Titel ASC";
$result = mysql_query($query);
?>

<?php while ($row = mysql_fetch_assoc($result)) { ?>
<a href="EditMovie.php?id=<?=$row['ID'];?>"><?=$row['Titel'];?> (<?=$row['Produktionsar'];?>)</a><br/>
<?php } ?>

<?php
$query = "SELECT * FROM tbl_regissor ORDER BY regissor ASC";
$result = mysql_query($query);
?>
<?php while ($row = mysql_fetch_assoc($result)) { ?>
<a href="EditDirector.php?id=<?=$row['id'];?>"><?=$row['regissor'];?></a><br/>
<?php } ?>

Ovanstående kodstycke borde väl skriva ut alla regissörer och filmer som finns i tabellerna, men den gör inte det - varför?

Permalänk
Inaktiv

1. Hittar den filen db.inc.php?
2. Supporterar din server PHP shorttags?

Det är inte så enkelt för oss att magiskt veta vad som går fel, vad får du för resultat? Några felmeddelanden?

Permalänk
Medlem

Än en gång, hur mycket php kan du? Hur ska vi veta om du bara hittat koden på näten och klistrat in?

Permalänk

Efter en hel del felprovning lyckades jag nu slutligen fixa allting! Det är bara ett litet problem som återstår...
Jag kan nu ändra allting i tbl_film och tbl_regissor.
Men efter att jag har ändrat något i ovanstående tabell så dyker det inte upp i en tabell som jag har för att sortera filmerna efter Namn, Titel och Regissör.

Koden ser ut som följande:
<?php
db_connect ();
/* Sorterar efter regissor ID. */
if (isset($_GET['sort'])) {
$sort = $_GET['sort'];
$query2 = "SELECT * FROM tbl_film, tbl_regissor WHERE tbl_film.regissor_id = tbl_regissor.ID ORDER BY $sort ASC";
$result = mysql_query($query2);

}
else{
$query = "SELECT * FROM tbl_film, tbl_regissor WHERE tbl_film.regissor_id = tbl_regissor.id ";

$result = mysql_query($query);
}
print"<table>";
print"<tr><th><p><a href='?sort=Titel'>Title:</a></p></th>";
print"<th><p><a href='?sort=regissor'>Director:</a></p></th>\n";
print"<th><p><a href='?sort=Produktionsar'>Year:</a></p></th>\n";

print"</tr>\n";
while ($row = mysql_fetch_array($result)){

print "<tr>\n";
$Titel = $row['Titel'];
$regissor = $row['regissor'];
$Produktionsar = $row['Produktionsar'];

print "<td>$Titel</td>";
print "<td>$regissor</td>\n";
print "<td>$Produktionsar</td>\n";
print "</tr>\n";
}
print "</table>";
?>

Permalänk

För att svara på ovanstående fråga så är jag relativt ny vad gäller PHP-programmering, så har blivit enormt mycket trial & error för att få allting att fungera!

Permalänk
Medlem
Skrivet av Mr.Awesome:

Efter en hel del felprovning lyckades jag nu slutligen fixa allting! Det är bara ett litet problem som återstår...
Jag kan nu ändra allting i tbl_film och tbl_regissor.
Men efter att jag har ändrat något i ovanstående tabell så dyker det inte upp i en tabell som jag har för att sortera filmerna efter Namn, Titel och Regissör.

Koden ser ut som följande:
<?php
db_connect ();
/* Sorterar efter regissor ID. */
if (isset($_GET['sort'])) {
$sort = $_GET['sort'];
$query2 = "SELECT * FROM tbl_film, tbl_regissor WHERE tbl_film.regissor_id = tbl_regissor.ID ORDER BY $sort ASC";
$result = mysql_query($query2);

}
else{
$query = "SELECT * FROM tbl_film, tbl_regissor WHERE tbl_film.regissor_id = tbl_regissor.id ";

$result = mysql_query($query);
}
print"<table>";
print"<tr><th><p><a href='?sort=Titel'>Title:</a></p></th>";
print"<th><p><a href='?sort=regissor'>Director:</a></p></th>\n";
print"<th><p><a href='?sort=Produktionsar'>Year:</a></p></th>\n";

print"</tr>\n";
while ($row = mysql_fetch_array($result)){

print "<tr>\n";
$Titel = $row['Titel'];
$regissor = $row['regissor'];
$Produktionsar = $row['Produktionsar'];

print "<td>$Titel</td>";
print "<td>$regissor</td>\n";
print "<td>$Produktionsar</td>\n";
print "</tr>\n";
}
print "</table>";
?>

Din SELECT statement ser felaktigt ut.
http://www.w3schools.com/sql/sql_join.asp
http://www.w3schools.com/sql/sql_alias.asp
Har svaren till ditt problem.

Visa signatur

Desktop: i7 2600k @ 4.2GHz, RX480, z77-MPOWER, 16GB DDR3, 120GB+240GB SSD, 3TB HDD, FD R4, 750W
Laptop: Asus x550J + MSI GE620DX | Mobil: Nexus 6P + Nokia X2 DS | Konsol: PS4, PS3 & PSVita

Permalänk

Hur ska min SELECT-statement se ut? Du får mer än gärna skriva den korrekta koden!
Jag är som sagt relativt ny när det kommer till PHP.

Permalänk
Inaktiv

Man kan använda JOIN men att skriva som du gör är också helt korrekt i vissa fall.

Testa:

$sql = 'SELECT * FROM `tbl_film` INNER JOIN `tbl_regissor` ON `tbl_film`.`regissor_id` = `tbl_regissor`.`ID` ORDER BY '. mysql_real_escape_string(trim($sort)) .' ASC;';

Notera, SQL är inte en del av PHP utan ett fristående "språk".

http://dev.mysql.com/doc/refman/5.0/en/join.html