Probleempje Met Het Maken Van Een Sql

Status
Niet open voor verdere reacties.

iKnow

Gebruiker
Lid geworden
31 aug 2012
Berichten
44
Hi,
Ik ben net nieuw op Helpmij.nl dus ik zou me eerst even voorstellen. Ik ben Koen (iKnow) en ven 16 jaar oud. Ik houd me vooral bezig
met techniek en ICT. Ik kom het meest in de SQL/Mysql Section. Ik doe een studie Techniek-ICT.
En ik hoop jullie te kunnen helpen en jullie mij.

Maar nu naar mijn vraag.
Ik ben bezig om een eigen soort Website Layout te maken met een Admin Paneel. Op de website komt onder andere Nieuws, Login etc.
Nu ben ik met het Nieuws systeem bezig maar dat wilt nog niet helemaal lukken.
Hier de informatie:

Het is de bedoeling dat je het al gemaakte nieuws kan updaten. Nu heb ik al een code:
Index
PHP:
<?php
mysql_connect("mysql1.000webhost.com",'a4221041_root','lol1234'); 
mysql_select_db("a4221041_test"); 
 
$opdracht = "SELECT text FROM TestTable WHERE id=1";
$result = mysql_query($opdracht);
$rij = mysql_fetch_assoc($result);
echo $rij['text'];
?>

<html>
<head>
<title>Update Database</title>
</head>
<body>
<form method="POST" action="update.php">

ID: </br>
<input type="text" name="id" size="30" /> </br>

Text:</br>
<input type="text" name="text" size="30" /></br>

<input type="submit" value="Update Database" />

</form>
</body>
</html>

Update.php
PHP:
<?php
$id = $_POST['id'];
$text = $_POST['text'];
 
mysql_connect ("mysql1.000webhost.com", "a4221041_root", "lol1234") or die ('Error: ' .mysql_error());
mysql_select_db ("a4221041_test");
 
$query="UPDATE TestTable SET text='".$id."' WHERE id=1";
 
$result=mysql_query($query);
 
if (!$result)
  {
  die('Query error:<br/> ' . mysql_error());
  }
 
echo "Database *** ".$text ;
 
?>

Nu heb ik nog niet meteen de goede informatie ingevoerd. Wel geprobeerd maar dat lukt me niet meteen.
Ik de database staan de volgende tabellen en die moet je met hulp van een form kunnen update.

PHP:
ID, Title, Kort Verhaal, Lang Verhaal, Datum, Afbeelding, Acteur

Ik hoop dat iemand het me kan uitleggen/ voor me maken.

Mvg, Koen
 
Allereerst, als je toch aan het leren slaat begin dan vast met mysqli.
Dit kan op dezelfde manier geschreven worden als mysql, maar is nieuwer en veiliger.

php.net/mysqli

Je hebt een database met de volgende tabellen
  • ID
  • Title
  • Kort Verhaal
  • Lang Verhaal
  • Datum
  • Afbeelding
  • Acteur

Met je update query zeg je het volgende:
Update de tabel "TestTable" en zet de waarde van kolom "text" naar de waarde van de variable "id".
Echter bestaat er geen kolom "text" in je tabel dus kan je die ook niet updaten.
Ook wil je niet de waarde van het id er in maar de text.

Dan zou het eerder moeten zijn
PHP:
 $query = "UPDATE TestTable SET `Kort Verhaal`='".$text."' WHERE ID='".$id."';";
mysql_query($query) or die(mysql_error()); //Dit zorgt er voor dat je een error terugkrijgt zodat je kunt zien wat er eventueel verkeerd gaat. In dit geval had je dus te zien gekregen dat de kolom text niet bestaat.

Tevens zijn er nog vele opmerkingen te maken over de code qua netheid etc. maar het is erg laat nu =D
 
Laatst bewerkt:
Reactie

Hi,

Al bedankt voor het script en de website die je me hebt gegeven.
Hier kan ik al heel veel mee.
Maar nu heb ik een query van Kort Verhaal. En die update je door op de verder knop en word het geupdate. Maar hoe kan ik ervoor zorgen dat alles te gelijk word geupdate?

Mvg, Koen
 
Je kunt de query uitbreiden zo veel je wilt, gebruik trouwens in je database geen, behalve eventueel bij ID, en geen spaties.

Je kunt dus een formulier maken en alle velden in de query zetten.
Hieronder een voorbeeld hoe je een user tabel zou kunnen updaten

PHP:
$query("UPDATE `user` SET `email`='".$_POST['email']."', `password`='".md5($_POST['password'])."', `age`='".$_POST['age']."';")
 
Oke, bedankt. Hier heb ik echt heel erg veel aan!
 
Ik heb nu ook nog een ander probleem. Ik heb geprobeerd om met 1 query meerdere database teksten te laten weergeven. Maar dat lukte niet helemaal.
Dit is mijn Query:
PHP:
$opdracht = "SELECT text FROM testtable WHERE id=1";

Kan je het misschien even goed bewerken. Want dan weet ik hoe het moet
 
Een ID wordt gebruikt als primaire sleutel, meestal met een auto increment om de rijen uit een tabel te onderscheiden.
Als je aan de query meegeeft "WHERE id=1" dan vraag je dus alleen de kolom "text" op van de rij waar kolom "id" waarde "1" bevat.

Als je ze allemaal wilt hebben dan zul je eerst alle rijen moeten ophalen en vervolgens met een while of een foreach loop de data verwerken op het scherm
PHP:
$query = "SELECT text FROM testtable;";
$result = mysql_query($query);

$opdrachten = mysql_fetch_assoc($result);
foreach($opdrachten as $opdracht)
{
	echo $opdracht['text'];	
}
 
Oke, maar dan nog lukt het niet helemaal. Me 2e kolum heet text1
 
Je kunt queries zou uitgebreid maken als je wilt.

Je kunt zeggen SELECT * FROM dan heb je alle kolommen.
Of je zegt SELECT text, text1, text3 FROM testable; dan selecteer je dus meerdere kolommen welke je nodig hebt.
 
Oke, jouw Formule die werkt een soort van prima. Alleen hij weergeeft maar 1 cijfer terwijl ik er 10 heb ingevoerd
 
Oke, jouw Formule die werkt een soort van prima. Alleen hij weergeeft maar 1 cijfer terwijl ik er 10 heb ingevoerd

Hoe bedoel je dit, waar heb je 10 cijfers ingevoerd.
Of bedoel je dat je 10 rijen met gegevens hebt ingevoerd in de database?
 
Ik voor bijvoorbeeld een woord van 10 letters in: abcdefghij maar dan weergeeft hij alleen de a en de rest niet
 
Dan staat de length van de betreffende kolom waarschijnlijk op 1, en mag er dus maar 1 teken in de kolom opgeslagen worden.
Even terzijde, misschien moet je eens een boek gaan lezen ofzo, want je mist super veel basis kennis en wilt direct van alles.
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan