• Jetzt anmelden. Es dauert nur 2 Minuten und ist kostenlos!

fehler ich komm nciht drauf

Status
Für weitere Antworten geschlossen.

clemo

Neues Mitglied
hi

zeile 33 bis 42

PHP:
$sql = "
INSERT INTO `rlinks`
(
`NAME` , `LINK` , `IP` , `counter`
)
VALUES
(
NULL , $_GET['name'], $_GET['URL'], '$ip', '0' ,
);
";


fehler: Parse error: parse error, expecting `T_STRING' or `T_VARIABLE' or `T_NUM_STRING' in C:\xampp\htdocs\includes\rlinks.php on line 40


was mach ich falsch??
ich komm einfach nicht auf den fehler!
lg
clemo
 
Werbung:
Werbung:
Nabend,

Array-Zeiger musst du (wie auch bei Objektzeigern) in Double-Quotes mit geschweiften Klammern gesondert markieren.
Möglichkeit 1:
PHP:
<?php
$sql = "
INSERT INTO `rlinks`
(
`NAME` , `LINK` , `IP` , `counter`
)
VALUES
(
NULL , `{$_GET['name']}`, `{$_GET['URL']}`, `$ip`, `0`
)"; 
?>
Möglichkeit 2:
PHP:
<?php
$sql = "
INSERT INTO `rlinks`
(
`NAME` , `LINK` , `IP` , `counter`
)
VALUES
(
NULL , `".$_GET['name']."`, `".$_GET['URL']."`, `".$ip."`, `0`
)"; 
?>

Wobei mir auffällt, dass deine Abfrage unsinnig ist.
Du hast 4 Spalten, aber 5 Werte.
 
ok aber

gut das geht aber jetzt gibt es noch einen fehler

ihr müsst wissen ich bin msql anfänger
Column count doesn't match value count at row 1
von:
PHP:
or die("Anfrage fehlgeschlagen bitte später nochmal probieren:<br> " . mysql_error());



was kann da nicht stimmen?
 
Es stimmt das nicht, was Voodoo in seinen letzten zwei Zeilen schon geschrieben hat. Anzahl der Spalten passt nicht zur Anzahl der Werte.

Gruß thuemmy
 
Werbung:
was ist ein statment?
mein eintrag!
PHP:
}else{//formular follständig ausgefühlt
$ip ="$REMOTE_ADDR"; 
//speichern
$sql = "
INSERT INTO `rlinks`
(
`NAME` , `LINK` , `IP` , `counter`
)
VALUES
(
NULL , `{$_GET['name']}`, `{$_GET['URL']}`, `$ip`, `0`
)"; 
$db_erg = mysql_query($sql) 
or die("Anfrage fehlgeschlagen bitte später nochmal probieren:<br> " . mysql_error());
}

PHP:
mein verbindung!
 mysql_connect("localhost",
  "user","pass");
  mysql_select_db("dbName");
 
Werbung:
Ein SQL-Statement ist eine SQL-Anweisung. So weit so gut.

Du hast immer noch 5 Werte aber nur 4 Spalten!

NULL -> NAME
$_GET['name'] -> LINK
$_GET['URL'] -> IP
$ip -> counter
0 -> ???
Aber so wie es aussieht ist wohl die NULL am Anfang Deiner Werte falsch.

Gruß thuemmy

PS. Du solltest Dir eine einheitliche Schreibweise für Variablen, Spaltennamen usw. angewöhnen. Das vermeidet von Anfang an Fehler.
 
ok
PHP:
$sql = "
INSERT INTO `rlinks`
(
`NAME` , `LINK` , `IP` , `counter`
)
VALUES
(
`{$_GET['name']}`, `{$_GET['URL']}`, `$ip`, `0`
)";

neuer fehler:
Unknown column 'Name der website' in 'field list'
 
Werbung:
doch den den ich dann beim formular eintrage!

also ich trag das ein und statt z.b. google trag ich in diesem beispiel NAME DER WEBSEITE ein


ich poste mal den ganzen code!

PHP:
<ul>
<?php
//verbundung
 $verbindung = mysql_connect("localhost",
  "root","");
  mysql_select_db("usr_eco2447_2",$verbindung);



if ($_GET["mod"]=="newL"){
//fomular
?>

<form action="?" method="GET">
  <input name="name" type="text" size="30" maxlength="30" value="Name der website"></p>
  <input name="URL" type="text" size="30" maxlength="40" value="http://..."></p>
  <input name="site" type="hidden" size="30" maxlength="40" value="<?php echo $_GET["site"]; ?>"></p>
  <input name="mod" type="hidden" size="30" maxlength="40" value="newLO"></p>
  <input type="submit" value="Hinzufügen" name="submit">
</form>

<?php
}else{
if ($_GET["mod"] == "newLO"){
if ($_GET["URL"] == ""){
echo "URL FEHLT<br>";
}else{
if ($_GET["name"] == ""){
echo "Url Name fehlt<br>";
}else{//formular follständig ausgefühlt
$ip ="$REMOTE_ADDR"; 
//speichern
$sql = "
INSERT INTO `rlinks`
(
`NAME` , `LINK` , `IP` , `counter`
)
VALUES
(
`{$_GET['name']}`, `{$_GET['URL']}`, `$ip`, `0`
)"; 
$db_erg = mysql_query($sql) 
or die("Anfrage fehlgeschlagen bitte später nochmal probieren:<br> " . mysql_error());
}
}

}else{
?>
<li><a href="http://google.com">Google</a><br></li>
<li><a href="http://schattenbaum.net/php">PHP für dich</a><br></li>
<li><a href="http://Simplux.org">Simplux</a><p></li>
<b><a href="?<?php echo "site=" . $_GET["site"]; ?>&mod=newL">NEUE URL</a></b>
</ul>
<?php

}
}
mysql_close($verbindung);
?>
 
ich mag diese VALUES schreibweise nicht: versuch es mal so

PHP:
$sql = "INSERT INTO
               `rlinks`
         SET
               `NAME` = '" . $_GET["name"] . "',
               `LINK` = '" . $_GET["URL"] . "',
               `IP` = '$ip',
               `counter` = '0'
";

Werte musst du in die einfachen Hochkommas setzen ' und nicht zwischen ``
 
Vermutlich liegt es an den Apostrophen, die die Werte eingrenzen, da muss ein einfaches Anführungszeichen hin. Und am Ende der SQL-Anweisung sollte ein Semikolon hin (wobei ich jetzt gar nicht weiß, ob das zwingend ist).
PHP:
$sql = "
INSERT INTO `rlinks`
(
`NAME` , `LINK` , `IP` , `counter`
)
VALUES
(
'{$_GET['name']}', '{$_GET['URL']}', '$ip', 0
);";
Da counter vermutlich ein Integerwert ist, darf die 0 auch nicht mit Anführungzeichen eingeschlossen werden.

Gruß thuemmy
 
Werbung:
nein, ist nicht zwingend und ob der eintrag eines int wertes mit oder ohne ' erfolgt, ist meiner erfahrung nach auch egal.. ansonsten hast du damit recht
 
ob der eintrag eines int wertes mit oder ohne ' erfolgt, ist meiner erfahrung nach auch egal.. ansonsten hast du damit recht
Hab das gerade mal in phpMyAdmin durchprobiert über Einfügen. Da hat phpMyAdmin sogar die Anführungszeichen um Integerwerte gesetzt. Ich finde es trotzdem besser ohne Anführungszeichen, um damit sofort zu signalisieren, hier handelt es sich um einen numerischen Wert (wenn ich mir nach Jahren das SQL-Statement nochmal angucke).

Gruß thuemmy
 
ich mag diese VALUES schreibweise nicht: versuch es mal so

PHP:
$sql = "INSERT INTO
               `rlinks`
         SET
               `NAME` = '" . $_GET["name"] . "',
               `LINK` = '" . $_GET["URL"] . "',
               `IP` = '$ip',
               `counter` = '0'
";
Werte musst du in die einfachen Hochkommas setzen ' und nicht zwischen ``


ok der code hat jetzt functioniert
aber wenn ich nochmal dann ein eintrag machen will dann...folgender error:

PHP:
Duplicate entry '0' for key 'counter'
 
Werbung:
Das liegt wohl daran, dass Du das Feld counter auf unique gesetzt hast.

Lerne Grundlagen!!!

Gruß thuemmy
 
Status
Für weitere Antworten geschlossen.
Zurück
Oben