Heey, ik heb helaas weer een vraag :(

Ik heb een toevoeg systeem voor informatie dat werkt met ID's. Ik heb nu een script gemaakt waar de titel en tekst goed worden ingevuld, maar het ID moet ook worden ingevuld. Ik wil dit niet zelf typen, maar ik wil het laatste ID uit die tabel hebben +1.

Even voor de duidelijkheid, ik wil dus weten hoe je het laatste ID uit de database kan krijgen.

Miniejjj
Dan vervang je regel 2 uit mijn voorbeeld, de content, door jouw variabele content. Dat lijkt mij toch niet zo moeilijk, dat is de basis van een dynamische website en dus ook van php.
Of ik doe het helemaal verkeerd, of je kan een textarea niet echo-en. Dit deed ik ( misschien wel helemaal verkeerd )
<?php
echo '<textarea rows="6" name="tekst" cols="42">$row['tekst']</textarea><br>';
?>

Miniejjj
Variabelen buiten quotes!
<?php
echo '<textarea rows="6" name="tekst" cols="42">'.$row['tekst'].'</textarea><br>';
?>
@pgFrank:
Hey top Frank, dit verschil tussen de fetch en de assoc is mij nooit zo uitgelegd. Ik zal voortaan de assoc variant gebruiken! Nu is me duidelijk waarom ik dit moet doen.

@Miniejjj:
Dit zijn allemaal fouten die duidelijk op je scherm weergegeven worden door de volgende regels:

<?php
ini_set('display_errors', 1); // 0 = uit, 1 = aan
error_reporting(E_ALL);
?>

Door deze fouten kan je eenvoudig afleiden wat er fout gaat in je script en hoef je minder snel een post te plaatsen op een forum. Gebruik dit nou even, dat bespaart je een hoop tijd en je ziet duidelijker hoe en waarom iets goed, en dus ook fout gaat...
Oke bedankt. Nu heb ik geprobeerd alles een beetje te scripten op mijn manier, maar nooit zonder fouten :( Kan iemand hier de fouten uit halen:

<head>
<title>Informatie veranderen</title>
</head>
<body>
<form action=verander.php method=POST>
<?php
if (!@mysql_select_db("minimachine", @mysql_connect("localhost", "minimachine", "xxx")))
{
echo "Er kan geen database connectie gemaakt worden.";
exit();
}

$sql = "SELECT
            id,
            titel,
            tekst
            FROM
            zoeken
        WHERE
            id ='".mysql_real_escape_string($_GET['id'])."'";
$res = mysql_query($sql) or die(mysql_error());

if(mysql_num_rows($res) == 1){
    $row = mysql_fetch_array($res);  
    echo '
    <B>Admin informatie veranderen</b><br><form>
    Titel:<input type="text" name="titel" size="16" value="'.$row['titel'].'"><B><br>
    Tekst:<textarea rows="6" name="tekst" cols="42">'.$row['tekst'].'</textarea><br>
    <input type="submit" vale=" Verander "></form>';

}

if( $_SERVER['REQUEST_METHOD'] == 'POST' )
{
   
    # Query maken en uitvoeren
    $sQry = "
    INSERT INTO 
    zoeken (
    id,
    tekst,
    titel
) 
VALUES (
  "'.$_POST['id']).'",
  '" . mysql_real_escape_string($_POST['tekst']) . "',
  '" . mysql_real_escape_string($_POST['titel']) . "'
)
";

    
    mysql_query($sQry) or die(mysql_error());
    echo "Het vliegtuig is verandert";
}
?>
</body>


Alvast bedankt





Waarom een INSERT-query? Een UPDATE lijkt mij meer op zijn plaats, zeker gezien de melding dat er iets is veranderd.

Verder snap ik niet waarom je mysql_fetch_array() wilt gebruiken wanneer ik net heb uitgelegd waarom je die niet moet gebruiken. Maar je mag het natuurlijk helemaal zelf weten.

Ps. Heb je inmiddels al wel het e.e.a. geleerd van alle op- en aanmerkingen? 99% van jouw script is voorgekauwd door anderen.
Ja, ik heb al heel veel geleerd, maar ik verander het script niet omdat het gewoon goed werkt. Maar als ik het script begrijp, kan ik het later in andere dingen ook toepassen. Maaruhm, kan jij mij misschien helpen met het script, want er zit nog iets fout in dit:
<?php
VALUES (
"'.$_POST['id']).'",
'" . mysql_real_escape_string($_POST['tekst']) . "',
'" . mysql_real_escape_string($_POST['titel']) . "'
)
";?>

De POST klopt niet, kan jij mij vertellen waarom niet...Moet het tussen haakjes? Ik heb trouwens de mysql_fetch_array() vervangen door mysql_fetch_assoc.

Gaan we weer... Quotes goed zetten!
<?
$sQry = "
INSERT INTO
zoeken (
id,
tekst,
titel
)
VALUES (
'".$_POST['id'])."',
'" . mysql_real_escape_string($_POST['tekst']) . "',
'" . mysql_real_escape_string($_POST['titel']) . "'
)
";
?>
SQL eist enkele quotes om een string, dus zet je dubbele quotes om een string in je PHP. En de SQL is een string op zich, die begint en eindigt dus met dubbele quotes. Wanneer je deze onderbreekt, om een variabele buiten quotes te halen, doe je dat wederom met dubbele quotes, daar ben je tenslotte ook mee begonnen.

Ps. Ga eerst leren scripten met eenvoudige voorbeeldjes, het huidige script is tehoog gegrepen. Zie de vele, vele problemen die je er mee hebt.
Nogmaals: zet de eerste 2 regels van onderstaand phpstukje boven elk script

Crispijn schreef op 25.11.2007 16:28
@pgFrank:
@Miniejjj:
Dit zijn allemaal fouten die duidelijk op je scherm weergegeven worden door de volgende regels:

<?php
ini_set('display_errors', 1); // 0 = uit, 1 = aan
error_reporting(E_ALL);
?>

Door deze fouten kan je eenvoudig afleiden wat er fout gaat in je script en hoef je minder snel een post te plaatsen op een forum. Gebruik dit nou even, dat bespaart je een hoop tijd en je ziet duidelijker hoe en waarom iets goed, en dus ook fout gaat...
Miniejjj schreef op 24.11.2007 13:48
<?php
$id = mysql_insert_id()+1;
if ($_POST['submit']) {
$titel = addslashes($_POST['titel']);
$tekst = addslashes($_POST['tekst']);
$sql = "insert into zoeken(id,tekst,titel) values($id,'$tekst','$title')";
mysql_query($sql) or die("Oops...");
echo "Bericht toegevoegd.";
}
?>

Wat doe je nu nog met die eerste regel? Wat doet het id veld nog in je INSERT query? dat is toch niet nodig?

Heb je enig idee wat je aan het doen bent? De logica achter bovenstaand is je in de eerste posts van je topic uitgelegd...

Reageren