我需要从网址获取变量code
,因此我$codes = $_GET['code'];
(网址示例website.com/update?code[]=7291&code[]=9274&code[]=8264&
)然后我SELECT firstname FROM guests WHERE invitecode = $codes"
然后我输出数据并设置为$relatives = $row["firstname"]
然后在文件中我需要回显/打印print $relative
。
为什么这对我不起作用?
... connection made ...
$codes = $_GET['code'];
$sql = "SELECT firstname FROM guests WHERE invitecode = $codes";
$result = mysqli_query($conn, $sql);
if (mysqli_num_rows($result) > 0) {
// output data of each row
while($row = mysqli_fetch_assoc($result)) {
$relatives[] = $row["firstname"];
}
}
foreach ($relatives as $relative) {
print $relative;
}
更新
所以现在使用:
<?php
$codes = $_GET['code'];
$thecodes = "";
foreach($codes as $vals)
$thecodes .= (int)$vals . ",";
if($thecodes != "")
{
$thecodes = trim($thecodes, ",");
$sql = "SELECT firstname FROM guests WHERE invitecode IN ($thecodes)";
$result = mysqli_query($conn, $sql);
$result = mysqli_query($conn, $sql);
if (mysqli_num_rows($result) > 0) {
while($row = mysqli_fetch_assoc($result)) {
$relatives[] = $row["firstname"];
}
}
foreach ($relatives as $relative) {
print $relative;
}
}
else
{
}
?>
虽然有效,但我想将foreach ($relatives as $relative) { echo $relative; };
输入到像$message = $firstname . " " . $lastname . " will be coming to your event. " . ;
这样的值中。
最终会出现这样的结果:$message = $firstname . " " . $lastname . " will be coming to your event. " . foreach ($relatives as $relative) { echo $relative . " "; };
。
出于某种原因,当我将它们组合起来时它不会起作用。
答案 0 :(得分:2)
使用IN
运算符。
<?php
$codes = $_GET['code'];
$thecodes = "";
foreach($codes as $vals)
$thecodes .= (int)$vals . ","; //Loop through making sure each is an int for security reasons (No sqli)
if($thecodes != "") //There is at least one code
{
$thecodes = trim($thecodes, ","); //Remove any additional commas
$sql = "SELECT firstname, lastname FROM guests WHERE invitecode IN ($thecodes)"; //Use the IN operator
$result = mysqli_query($conn, $sql);
if (mysqli_num_rows($result) > 0) {
while($row = mysqli_fetch_assoc($result)) {
echo $row["firstname"] . " " . $row["lastname"] . "is coming to your event";
}
}
}
else //No codes to be queried
{
}
?>
答案 1 :(得分:1)
这可以成为您的解决方案吗?
<-- index.html -->
<!DOCTYPE html>
<html lang="en" ng-app="contactsApp">
<head>
<meta charset="UTF-8">
<title>Contacts</title>
<link href='https://fonts.googleapis.com/css?family=Varela+Round' rel='stylesheet' type='text/css'>
<script type="text/javascript" src="https://ajax.googleapis.com/ajax/libs/angularjs/1.3.15/angular.js"></script>
<script src="scripts/app.js"></script>
<script src="controllers/main.js"></script>
<link href="css/styles.css" rel="stylesheet" type="text/css">
</head>
<body>
<h1>Contacts</h1>
<!-- create functionality-->
<div ng-controller="mainController as mainCtrl" class="list">
<div class="add">
<a href="" ng-click="mainCtrl.toggleForm()">+ Add a New Contact</a>
<form ng-show="mainCtrl.formIsVisible" ng-submit="mainCtrl.create()">
<label>Name</label>
<input placeholder="Enter Name" class="createInput" type="text" name="name" ng-model="mainCtrl.name">
<label>Phone Number</label>
<input placeholder="Enter Phone Number" class="createInput" type="text" name="phoneNumber" ng-model="mainCtrl.phoneNumber">
<button class="new">New Contact</button>
</form>
</div>
<!-- edit, update and delete functionality -->
<div class="item" ng-repeat="contact in mainCtrl.contacts">
<!-- | orderBy:'-name': true -->
<!-- show data -->
<div ng-show=!editContact>
<label ng-show="!editContact">{{contact.name}}</label>
<label ng-show="!editContact">{{contact.phoneNumber}}
</label>
</div>
<!-- form for editing -->
<form ng-show="editContact">
<input ng-model="mainCtrl.name" class="editing-label" type="text"/>
<input ng-model="mainCtrl.phoneNumber" class="editing-label" type="text"/>
</form>
<!-- edit, save and delete buttons -->
<div class="actions">
<a href="" class="edit" ng-click="mainCtrl.edit($index); editContact = !editContact">Edit</a>
<a href="" class="save" ng-click="mainCtrl.update($index); editContact = !editContact">Save</a>
<a href="" class="delete" ng-click="mainCtrl.delete($index)">Delete</a>
</div>
</div>
</div>
</body>
</html>
<-- app.js -->
'use strict';
(function() {
var app = angular.module('contactsApp', [
'mainController'
])
})()
<-- main.js(controller) -->
(function() {
angular.module("contactsApp", [])
.controller("mainController", function() {
this.contacts = [
{"id": "0", "name":"Carson Daly", "phoneNumber":"000-000-0000"},
{"id": "1", "name":"Britney Spears", "phoneNumber":"000-000-0000"},
{"id": "2", "name":"Freddie Prince Jr", "phoneNumber":"000-000-0000"},
{"id": "3", "name":"Halle Berry", "phoneNumber":"000-000-0000"},
{"id": "4", "name":"Gary Oldman", "phoneNumber":"000-000-0000"},
{"id": "5", "name":"Aaron Carter", "phoneNumber":"000-000-0000"}
]
this.formIsVisible = false
this.toggleForm = function() {
console.log("toggleform")
if(this.formIsVisible){
this.formIsVisible = false
}
else {
this.formIsVisible = true
}
}
this.reset = function(){
this.name = ""
this.phoneNumber = ""
}
this.create = function() {
console.log("clicked")
this.contacts.unshift({
name: this.name,
phoneNumber: this.phoneNumber
});
this.reset()
};
this.edit = function(index) {
var contact = this.contacts[index];
this.name = contact.name;
this.phoneNumber = contact.phoneNumber;
};
this.update = function(index) {
var contact = this.contacts[index];
contact.name = this.name;
contact.phoneNumber = this.phoneNumber;
};
this.delete = function(index){
console.log("whats up")
console.log(index)
this.contacts.splice(index, 1);
};
});
})();
答案 2 :(得分:-1)
我认为这会奏效......
... connection made ...
$codes = $_GET['code'];
$sql = "SELECT firstname FROM guests WHERE invitecode = '$codes'";
$result = mysqli_query($conn, $sql) or die('-1' . mysqli_error());
if (mysqli_num_rows($result) > 0) {
// output data of each row
while($row = mysqli_fetch_assoc($result)) {
echo ($row['firstname']);
}
}